jQuery.parseJSON单引号与双引号

究竟是什么区别呢?

这工作正常:

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

但以下不起作用:

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

这是为什么?

这是因为双引号被认为是标准的,而单引号不是。 这不是特别针对JQuery,而是关于JSON标准 。 所以不pipeJS工具包,你应该期望相同的行为。

值可以是双引号或数字,或者真或假或空,或对象或数组中的string。 这些结构可以嵌套。

更新

或者也许它是JSON单引号JSON响应的重复

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

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

去www.Jsonlint.com网站,检查你的单引号JSONstring,你会发现它不是一个有效的JSONstring。 因为双引号json是标准的json格式。

jsonlint.com是一个网站来检查json格式是否正确。

你可以使用replace来解决这个问题。 这对我有效。

 var str = "{'orderedList': 'true'}"; str = str.replace(/\'/g, '\"'); JSON.parse(str);