Перейти к содержимому
myconvert.ru
JSON

Формат JSON

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

Обновлено

Формат JSON: что это, чем открыть и как конвертировать

JSON придумал Дуглас Крокфорд в начале двухтысячных, взяв за основу синтаксис описания объектов из языка JavaScript. Идея была в том, чтобы получить формат обмена данными, который человек может прочитать глазами, а программа — разобрать без сложного парсера.

Получилось настолько удачно, что JSON стал стандартом де-факто для всего: ответов веб-сервисов, файлов настроек, выгрузок между системами, хранения документов в базах данных. Формат закреплён стандартами ECMA-404 и RFC 8259 и поддерживается всеми языками программирования.

Как он устроен

Всего два типа структур: объект — набор пар «ключ-значение» в фигурных скобках, и массив — упорядоченный список в квадратных скобках. Значением может быть строка, число, логическое значение, null, а также другой объект или массив — отсюда произвольная вложенность.

Кодировка всегда UTF-8, что избавляет от вечной проблемы текстовых форматов с кракозябрами.

Почему его хочется превратить в таблицу

Читать выгрузку из нескольких тысяч записей в виде текста невозможно. Как только данные нужно отсортировать, отфильтровать, посчитать сумму или показать коллеге, требуется таблица.

Хорошо ложатся в таблицу массивы однотипных объектов — именно так выглядит большинство выгрузок из веб-сервисов. Конвертер в CSV собирает колонки объединением всех встреченных ключей, поэтому записи с разным набором полей не теряются: недостающие значения просто остаются пустыми.

Вложенные объекты и массивы записываются в ячейку текстом — развернуть их в отдельные колонки автоматически нельзя, потому что глубина вложенности у разных записей может отличаться.

Плюсы и минусы JSON

Сильные стороны

  • Хранит вложенные структуры
  • Поддерживается всеми языками программирования
  • Всегда UTF-8

Слабые стороны

  • Неудобно читать в больших объёмах
  • Таблицы приходится разворачивать вручную

Чем открыть JSON

WindowsБлокнот, VS Code, браузер
macOSTextEdit, браузер
Androidтекстовый редактор
iPhone и iPadФайлы
БраузерыChrome — да, Firefox — да, Safari — да, Edge — да
MIME-типapplication/json

Конвертеры с форматом JSON

Чем открыть JSON на Windows, macOS, Android и iPhone

Частые вопросы про JSON

Чем открыть JSON?
Любым текстовым редактором — это обычный текст. Удобнее в редакторе кода с подсветкой синтаксиса или прямо в браузере: современные браузеры показывают JSON деревом, которое можно сворачивать и разворачивать. Для просмотра табличных данных проще [перевести файл в CSV](/json-v-csv/).
Почему JSON не превращается в таблицу автоматически?
Потому что он описывает структуры произвольной вложенности, а таблица плоская. Ровно ложится в таблицу только массив однотипных объектов: ключи становятся колонками, объекты — строками. Вложенные объекты приходится либо разворачивать вручную, либо записывать в ячейку текстом.
В какой кодировке хранится JSON?
Всегда в UTF-8 — это часть стандарта. Поэтому кракозябр, типичных для CSV и TXT, у JSON не бывает. Если текст всё же нечитаем, значит, файл сохранили с нарушением спецификации.
Чем JSON отличается от XML?
Компактностью и простотой. JSON описывает те же вложенные структуры, но без закрывающих тегов и атрибутов, поэтому файл меньше и читается легче. XML гибче и поддерживает схемы валидации, из-за чего до сих пор используется в корпоративных системах и в устройстве офисных форматов.
Почему мой JSON не разбирается?
Чаще всего из-за мелочей синтаксиса: запятая после последнего элемента, одинарные кавычки вместо двойных, комментарии внутри файла или незакрытая скобка. Спецификация строга и ничего из этого не допускает. Инструмент укажет позицию символа, на котором разбор остановился.