jQuery.parseJSON单引号vs双引号

时间:2013-01-16 09:59:24

标签: javascript jquery json

这有什么区别?

这很好用:

var obj1 = jQuery.parseJSON('{"orderedList": "true"}');
document.write("obj1 "+ obj1.orderedList );

但以下不起作用:

var obj2 = jQuery.parseJSON("{'orderedList': 'true'}");
document.write("obj2 "+ obj2.orderedList );

为什么?

4 个答案:

答案 0 :(得分:95)

那是因为双引号被认为是标准而单引号不是。这并不是特定于JQuery,而是关于JSON standard。因此,无论JS工具包如何,您都应该期待相同的行为。

  

值可以是双引号或数字,或true或false或null,或对象或数组的字符串。这些结构可以嵌套。

<强>更新

或者它可能是jQuery single quote in JSON response

的副本

答案 1 :(得分:21)

根据API文档,双引号被认为是有效的JSON,单引号不是。

http://api.jquery.com/jQuery.parseJSON/

答案 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);