json.stringify()与json.parse()的区别以及用处

一、JSON.stringify()和JSON.parse() 区别

我们都用过JSON.stringify()和JSON.parse() ,从名字上就能知道

JSON.stringify()的作用是将JavaScript对象转换为JSON 字符串

JSON.parse()可以将JSON字符串转为一个对象。

通俗易懂版:

JSON.stringify() 将对象a转化成字符串s;

JSON.parse() 将字符串s转化成对象a;

简单点说,它们的作用是相对的,我用JSON.stringify()将对象a变成了字符串c,那么我就可以用JSON.parse()将字符串c还原成对象a。

1

2

3

4

5

6

7

let arr = [1,2,3];

JSON.stringify(arr);//'[1,2,3]'

typeof JSON.stringify(arr);//string

let string = '[1,2,3]';

console.log(JSON.parse(string))//[1,2,3]

console.log(typeof JSON.parse(string))//object

在使用JSON.parse()需要注意一点,由于此方法是将JSON字符串转换成对象,所以你的字符串必须符合JSON格式,即键值都必须使用双引号包裹:

1

2

3

4

let a = '["1","2"]';

let b = "['1','2']";

console.log(JSON.parse(a));// Array [1,2]

console.log(JSON.parse(b));// 报错

二、JSON.stringify()妙用

1.判断数组是否包含某对象,或者判断对象是否相等。

1

2

3

4

5

6

7

8

9

10

11

12

13

//判断数组是否包含某对象

let data = [

  {name:'掘金'},

  {name:'css学习'},

  {name:'js学习'},

  ],

  val = {name:'掘金'};

JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1; // true

//判断两数组/对象是否相等

let a = [1,2,3],

  b = [

猜你喜欢

转载自blog.csdn.net/buduoduoorg/article/details/113134716