JQuery.parseJSON одинарная цитата и двойная цитата
Что на самом деле разница между этим?
Это отлично работает:
var obj1 = jQuery.parseJSON('{"orderedList": "true"}');
document.write("obj1 "+ obj1.orderedList );
но следующее не работает:
var obj2 = jQuery.parseJSON("{'orderedList': 'true'}");
document.write("obj2 "+ obj2.orderedList );
Почему это?
Ответы
Ответ 1
Это потому, что двойные кавычки считаются стандартными, а одинарная кавычка - нет. Это не совсем специфично для JQuery, но его стандарт JSON. Поэтому, независимо от инструментария JS, вы должны ожидать такое же поведение.
Значение может быть строкой в двойных кавычках, или числом, или истинным или ложным или нулевым, или объектом или массивом. Эти структуры могут быть вложенными.
Обновление
Или, возможно, его дубликат одиночной кавычки jQuery в ответе JSON
Ответ 2
В соответствии с документацией API двойные кавычки считаются допустимыми JSON, одинарные кавычки не являются.
http://api.jquery.com/jQuery.parseJSON/
Ответ 3
Перейдите на веб-сайт www.Jsonlint.com и проверьте свою одиночную строку json string, вы обнаружите, что это не допустимая строка json. Поскольку двойные кавычки json - стандартный формат json.
jsonlint.com - это веб-сайт для правильного выбора формата json.
Ответ 4
Вы можете использовать replace, чтобы исправить это. Это сработало для меня.
var str = "{'orderedList': 'true'}";
str = str.replace(/\'/g, '\"');
JSON.parse(str);