这有什么区别?
这很好用:
var obj1 = jQuery.parseJSON('{"orderedList": "true"}');
document.write("obj1 "+ obj1.orderedList );
但以下不起作用:
var obj2 = jQuery.parseJSON("{'orderedList': 'true'}");
document.write("obj2 "+ obj2.orderedList );
为什么?
答案 0 :(得分:95)
那是因为双引号被认为是标准而单引号不是。这并不是特定于JQuery,而是关于JSON standard。因此,无论JS工具包如何,您都应该期待相同的行为。
值可以是双引号或数字,或true或false或null,或对象或数组的字符串。这些结构可以嵌套。
<强>更新强>
的副本答案 1 :(得分:21)
根据API文档,双引号被认为是有效的JSON,单引号不是。
答案 2 :(得分:4)
转到www.Jsonlint.com网站并查看单引号json string,您会发现它不是有效的json字符串。因为双引号json是标准的json格式。
jsonlint.com是一个检查json格式是否合适的网站。
答案 3 :(得分:1)
您可以使用替换来解决此问题。这对我有用。
var str = "{'orderedList': 'true'}";
str = str.replace(/\'/g, '\"');
JSON.parse(str);