#javascript #json #double-quotes
#javascript #json #двойные кавычки
Вопрос:
Я запустил две части кода javascript на онлайн-платформе, работающей на JS:Ссылка на веб-сайт
pets = '{'pet_names':[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
var arr = JSON.parse(pets);
alert(arr.pet_names[1].name);
Код с двойными кавычками («pet_names») был бы в порядке, но с одинарными кавычками (‘pet_names’) будет напоминать ошибку:«Неожиданный идентификатор»
pets = '{"pet_names":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
var arr = JSON.parse(pets);
alert(arr.pet_names[1].name);
Итак, почему это могло произойти?
Ответ №1:
В JSON допустимы только двойные кавычки.
Вы можете найти стандарт на JSON.org
Значением может быть строка в двойных кавычках, или число, или true, или false, или null, или объект, или массив. Эти структуры могут быть вложенными.
Другими словами, нет строк в одинарных кавычках.
Ответ №2:
Первый вариант не сработал, потому что у вас синтаксическая ошибка при попытке определить свой строковый литерал
, который вы, вероятно, хотели
pets = '{'pet_names':[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
обратите внимание, что кавычки экранированы.
Теперь, если вы использовали эту строку в анализаторе json, вы все равно получили бы ошибку (SyntaxError: неожиданный токен ‘), поскольку ключи в JSON должны быть определены с помощью двойных кавычек, использование одинарных кавычек допустимо для определения литералов объектов JavaScript, которые отделены от JSON.