JSON.parse()
JSON 通常用于与服务端交换数据。
在接收服务器数据时一般是字符串。
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
例如我们从服务器接收了以下数据:
// 这是一个字符串,我们无法直接对其进行操作
text = '{ "name":"baozi", "age":18, "sex":"男" }'
现有一个需求将上面的数据修改,将name改成gouzi
// 直接使用会报错
let name = text.name // 会报错,text中没有name属性,所以我们无法直接使用text
// 请求过来的数据完全符合JSON的格式,但又是一个字符串,所以我们直接使用JSON.parse()
let nowText = JSON.parse(text);
// 将字符串转换为了一个JSON对象,此时可以直接对nowText进行JSON对象的读取和修改
console.log(nowText.name , nowText.age , nowText.sex ) // baozi 18 男
nowText.name = "gouzi" // 修改他的值
console.log(nowText) // { "name":"gouzi", "age":18, "sex":"男"}
JSON.stringify()
在向服务器发送数据时一般是字符串。
我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
现有一个需求将上面修改完成的数据在以字符串的形式发送到服务器
// 当前的数据 nowText = { "name":"gouzi", "age":18, "sex":"男"},这是一个JSON对象
// 直接使用JSON.stringify() ,即可实现需求
let stringText = JSON.stringify(nowText );
// 控制台看见的字符串和JSON对象的区别就在于JSON对象是可以展开的
console.log(stringText) // { "name":"gouzi", "age":18, "sex":"男"};
实际开发应用中一般都是以上两种情况,这只是JSON.parse() 与 JSON.stringify()基础使用场景;
JSON.parse() 与 JSON.stringify() 的功能还需要具体了解,比如他们后面带的参数:
JSON.parse(text[, reviver]);
JSON.stringify(value[, replacer[, space]]);
在此就不做解释了,一般遇不上。