Формат 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