$ .parseJSON()在有效对象上返回null

jsfiddle链接

var x = { "Item1" : 1, "Item2" : { "Item3" : 3 } } alert(JSON.stringify(x, undefined, 2)); alert($.parseJSON(x)); 

第一个警告有效对象。 第二个警告null。 在实际代码中,“x”变量可以是字符串或对象,因此我应该能够解析这两种类型。 我错过了什么吗?

你正在解析一个对象。 你解析字符串,而不是对象; 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会为您处理,因此没有必要。 如果你需要它,有各种插件。

试试这个:

 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/