Вебсправочник
Справочник JavaScript

JSON: обмен данными и проверка структуры

Как сериализовать простые данные, обработать ошибку разбора и не путать JSON с произвольным JavaScript.

Основная идея

JSON — текстовый формат обмена данными. JSON.stringify преобразует поддерживаемую структуру в строку, JSON.parse разбирает строку обратно. Имена свойств и строки записываются в двойных кавычках; комментарии и завершающие запятые стандартный JSON не допускает.

Успешный разбор ещё не гарантирует нужную структуру. Ответ может быть корректным JSON-числом вместо объекта или содержать поля другого типа. После parse проверьте обязательные поля и ограничения до использования в интерфейсе.

Пример JavaScript

const text = JSON.stringify({ title: "HTML", minutes: 4 });
try {
  const value = JSON.parse(text);
  if (typeof value.title !== "string") throw new Error("Нет названия");
  console.log(value.title);
} catch (error) {
  console.error("Не удалось прочитать данные");
}

Пример создаёт JSON, разбирает его и проверяет тип одного поля. Это минимальная иллюстрация, а не полная схема валидации.

Частая ошибка

Не используйте eval для разбора JSON. Формат данных не должен превращаться в выполнение произвольного кода.

Самостоятельная проверка

Замените text некорректной строкой и затем корректным объектом без title. Проверьте обе причины ошибки отдельно.

Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.

Следующие темы: объекты, ответы API.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.