jQuery.parseJSON одну цитату против двойных кавычек


какая на самом деле разница между этим?

это прекрасно работает:

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

но следующее не работает:

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

почему это?

4 62

4 ответа:

Это потому, что двойные кавычки считаются стандартными, а одинарные-нет. Это не совсем специфично для JQuery, но его о стандарт JSON. Поэтому независимо от JS toolkit, вы должны ожидать такого же поведения.

значение может быть строкой в двойных кавычках, числом, true, false или null или объект или массив. Эти структуры могут быть вложенными.

обновление

или, возможно, его дубликат из одиночная кавычка jQuery в ответе JSON

согласно документации API, двойные кавычки считаются допустимыми JSON, одинарные кавычки-нет.

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

перейти к www.Jsonlint.com веб-сайт и проверьте свои одинарные кавычки JSON string вы обнаружите, что это не допустимая строка json. Потому что двойные кавычки json-это стандартный формат json.

jsonlint.com это веб-сайт для проверки формата json правильно или нет.

вы можете использовать заменить чтобы это исправить. Это сработало для меня.

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

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

JSON.parse(str);