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

时间:2012-06-27 06:15:17

标签: json parsing

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

解析此字符串也会产生相同的结果。

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

4 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:4)

好问题。不同之处在于传输格式。

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" }

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

答案 2 :(得分:0)

我认为解析的json字符串应该是实际javascript对象和数据数组中的字符串数据(或者json字符串包含的任何语言)

答案 3 :(得分:0)

JSON对象包含用于解析JSON并将值转换为JSON的方法。

它不能被调用或构造,除了它的两个方法属性之外,它没有自己的有趣功能。

JSONParser parser = new JSONParser();
Object object = parser.parse(Message.toString());
JSONObject arObj = (JSONObject) object;