Skip to main content

Формат JSON

  • JSON – это формат данных, который имеет собственный независимый стандарт и библиотеки для большинства языков программирования.
  • JSON поддерживает простые объекты, массивы, строки, числа, логические значения и null.
  • JavaScript предоставляет методы JSON.stringify для сериализации в JSON и JSON.parse для чтения из JSON.
  • Оба метода поддерживают функции преобразования для интеллектуального чтения/записи.
  • Если объект имеет метод toJSON, то он вызывается через JSON.stringify.

JavaScript предоставляет методы:

  • JSON.stringify для преобразования объектов в JSON.
  • JSON.parse для преобразования JSON обратно в объект.

JSON поддерживает следующие типы данных:

  • Объекты { ... }
  • Массивы [ ... ]
  • Примитивы:
    • строки,
    • числа,
    • логические значения true/false,
    • null.

JSON.stringify

JSON.stringify пропускает некоторые специфические свойства объектов JavaScript

  • Свойства-функции (методы).
  • Символьные ключи и значения.
  • Свойства, содержащие undefined.

💥 Важное ограничение: не должно быть циклических ссылок.

Исключаем и преобразуем: replacer

  • value Значение для кодирования.
  • replacer Массив свойств для кодирования или функция соответствия function(key, value).
  • space Дополнительное пространство (отступы), используемое для форматирования.

В большинстве случаев JSON.stringify используется только с первым аргументом. Но если нам нужно настроить процесс замены, например, отфильтровать циклические ссылки, то можно использовать второй аргумент JSON.stringify.

let json = JSON.stringify(value[, replacer, space])

Форматирование: space

Третий аргумент в JSON.stringify(value, replacer, space) – это количество пробелов, используемых для удобного форматирования.

Пользовательский «toJSON»

Как и toString для преобразования строк, объект может предоставлять метод toJSON для преобразования в JSON. JSON.stringify автоматически вызывает его, если он есть.

JSON.parse

Чтобы декодировать JSON-строку, нам нужен другой метод с именем JSON.parse.

let value = JSON.parse(str[, reviver]);
  • str JSON для преобразования в объект.
  • reviver Необязательная функция, которая будет вызываться для каждой пары (ключ, значение) и может преобразовывать значение.

Кроме того, JSON не поддерживает комментарии.

🚀 Источник: https://learn.javascript.ru/json