jQuery.parseJSON single quote vs double quote

2019-01-02 15:33发布

What actually the difference between this?

This works fine:

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

but the following does not work:

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

Why is that?

4条回答
忆尘夕之涩
2楼-- · 2019-01-02 16:12

As per the API documentation, double quotes are considered valid JSON, single quotes aren't.

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

查看更多
与风俱净
3楼-- · 2019-01-02 16:23

You could use replace to fix this. This worked for me.

var str = "{'orderedList': 'true'}";

str = str.replace(/\'/g, '\"');

JSON.parse(str);
查看更多
浪荡孟婆
4楼-- · 2019-01-02 16:25

That's because double quotes is considered standard while single quote is not. This is not really specific to JQuery, but its about JSON standard. So irrespective of JS toolkit, you should expect same behaviour.

A value can be a string in double quotes, or a number, or true or false or null, or an object or an array. These structures can be nested.

Update

Or perhaps its a duplicate of jQuery single quote in JSON response

查看更多
春风洒进眼中
5楼-- · 2019-01-02 16:29

Go to www.Jsonlint.com website and check your single quotes json string you will found that it is not a valid json string. Because double quotes json is standard json format.

jsonlint.com is a website to check json format right or not.

查看更多
登录 后发表回答