6

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

解析这个字符串也会产生同样的结果。

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

4

4 回答 4

8

这只是序列化/反序列化。

在 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 时,您需要将字符串反序列化(解析)为对象。

于 2012-06-27T06:20:50.713 回答
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" }

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

于 2012-06-27T06:27:31.063 回答
0

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

于 2012-06-27T06:22:48.323 回答
0

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

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

JSONParser parser = new JSONParser();
Object object = parser.parse(Message.toString());
JSONObject arObj = (JSONObject) object;
于 2013-08-20T06:40:07.573 回答