当我们可以直接从字符串中读取属性时:
var data = {"id":1,"name":"abc","address":{"streetName":"cde","streetId":2}};
console.log(data.address.streetName); // cde
为什么人们使用JSON.parse
:
var obj = JSON.parse(data);
console.log(obj.address.streetName); // cde
答案 0 :(得分:5)
它不是字符串,而是Javascript对象。字符串在下面给出
var data = '{"id":1,"name":"abc","address":{"streetName":"cde","streetId":2}}';
使它成为对象我们使用JSON.parse
var obj = JSON.parse(data);
console.log(obj.address.streetName); // cde
答案 1 :(得分:3)
在第一个示例中,数据是一个对象,但在第二个示例中,数据是JSON 字符串。
这是一个主要的区别。您可以调用eval(数据)来解析JSON字符串,但这非常不安全。
答案 2 :(得分:3)
JSON.parse()
需要一个字符串。更具体地说,是一个带有JSON编码数据的字符串。
如果它被应用于某个对象,那么它就是一个错误,其来源可能是JavaScript对象和JSON格式之间似乎存在的常见混淆。