json字符串和解析的json字符串之间的区别

May*_*ank 4 parsing json

json字符串和解析的json字符串有什么区别?例如在javascript中假设我有一个json格式的字符串说[{},{}]

解析这个字符串也会产生同样的事情.

那么为什么我们需要解析呢?

McG*_*gle 6

它只是序列化/反序列化.

在Javscript代码中,您通常使用该对象,因为这可以让您轻松获取其属性等,而JSON字符串对您没有多大帮助.

var jsonobj = { "arr": [ 5, 2 ], "str": "foo" };
console.log(jsonobj.arr[1] + jsonobj.str);
// 2foo

var jsonstr = JSON.stringify(jsonobj);
// cannot do much with this
Run Code Online (Sandbox Code Playgroud)

但是,要通过Ajax调用将其发送到服务器,您需要先将其序列化(stringify).同样,当从服务器接收JSON时,您需要从字符串反序列化(解析)到对象.


Jac*_*one 5

很好的问题。区别在于传输格式。

JSON 只是 JavaScript 对象的“符号”,它实际上并不是 JavaScript 的“对象字面量”本身。因此,当数据以 JSON 格式接收时,它只是一个需要解释、评估、解析的字符串,以便成为真正的 JavaScript 'Object-Literal。

两者之间有一个物理差异,那就是引号。这是有道理的,JSON 需要是一个要传输的字符串。方法如下:

//A JavaScript Object-Literal

var anObj  = { member: 'value'}

//A JSON representation of that object

var aJSON = { "member":"value" }
Run Code Online (Sandbox Code Playgroud)

希望有帮助。祝一切顺利!纳什