Подтвердить что ты не робот

JQuery.parseJSON одинарная цитата и двойная цитата

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

Это отлично работает:

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

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

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

Почему это?

4b9b3361

Ответ 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);