Формат JSON
JavaScript Object Notation. Ответы API, конфигурации, выгрузки данных между сервисами.
Обновлено

JSON придумал Дуглас Крокфорд в начале двухтысячных, взяв за основу синтаксис описания объектов из языка JavaScript. Идея была в том, чтобы получить формат обмена данными, который человек может прочитать глазами, а программа — разобрать без сложного парсера.
Получилось настолько удачно, что JSON стал стандартом де-факто для всего: ответов веб-сервисов, файлов настроек, выгрузок между системами, хранения документов в базах данных. Формат закреплён стандартами ECMA-404 и RFC 8259 и поддерживается всеми языками программирования.
Как он устроен
Всего два типа структур: объект — набор пар «ключ-значение» в фигурных скобках, и массив — упорядоченный список в квадратных скобках. Значением может быть строка, число, логическое значение, null, а также другой объект или массив — отсюда произвольная вложенность.
Кодировка всегда UTF-8, что избавляет от вечной проблемы текстовых форматов с кракозябрами.
Почему его хочется превратить в таблицу
Читать выгрузку из нескольких тысяч записей в виде текста невозможно. Как только данные нужно отсортировать, отфильтровать, посчитать сумму или показать коллеге, требуется таблица.
Хорошо ложатся в таблицу массивы однотипных объектов — именно так выглядит большинство выгрузок из веб-сервисов. Конвертер в CSV собирает колонки объединением всех встреченных ключей, поэтому записи с разным набором полей не теряются: недостающие значения просто остаются пустыми.
Вложенные объекты и массивы записываются в ячейку текстом — развернуть их в отдельные колонки автоматически нельзя, потому что глубина вложенности у разных записей может отличаться.
Плюсы и минусы JSON
Сильные стороны
- Хранит вложенные структуры
- Поддерживается всеми языками программирования
- Всегда UTF-8
Слабые стороны
- Неудобно читать в больших объёмах
- Таблицы приходится разворачивать вручную
Чем открыть JSON
| Windows | Блокнот, VS Code, браузер |
|---|---|
| macOS | TextEdit, браузер |
| Android | текстовый редактор |
| iPhone и iPad | Файлы |
| Браузеры | Chrome — да, Firefox — да, Safari — да, Edge — да |
| MIME-тип | application/json |
Конвертеры с форматом JSON
