var x = {
"Item1" : 1,
"Item2" : {
"Item3" : 3
}
}
alert(JSON.stringify(x, undefined, 2));
alert($.parseJSON(x));
首先警告有效对象。第二个警告null。在实际代码中,“x”变量可以是字符串或对象,因此我应该能够解析这两种类型。我错过了什么吗?
答案 0 :(得分:9)
你正在解析一个对象。你解析字符串,而不是对象; jQuery.parseJSON
只接受字符串。来自文档:
jQuery.parseJSON(json)
- json
- 要解析的JSON字符串。
用法:
if (! window.console) {
console = {
log: function (msg) {
alert(msg);
}
};
}
console.log($.parseJSON(JSON.stringify(x, undefined, 2)));
标准jQuery似乎没有JSON字符串。通常,jQuery会为您处理,因此没有必要。如果你需要它,有各种插件。
答案 1 :(得分:2)
试试这个:
var x = { "Item1" : 1, "Item2" : { "Item3" : 3 }};
var stringified = JSON.stringify(x, undefined, 2);
var objectified = $.parseJSON(stringified);
alert(stringified);
alert(objectified.Item1);
alert(JSON.stringify(objectified, undefined, 2););
如上所述,这将为解析器提供一个字符串来解析对象,而不是对象本身。
这是一个小提琴:http://jsfiddle.net/uaN8G/