Чем открыть JSON
JSON — обычный текст, и открыть его можно чем угодно. Вопрос в другом: как его прочитать, когда в файле десять тысяч записей и вложенность на четыре уровня.
Способы по задачам
| Задача | Чем | Оговорки |
|---|---|---|
| Заглянуть в маленький файл | браузер, Notepad++, VS Code | форматирование и подсветка есть, поиска по значениям нет |
| Проверить корректность | любой валидатор, редактор с подсветкой | онлайн-валидаторы требуют вставить содержимое — для рабочих данных не годится |
| Найти записи по условию | таблица с фильтрами | нужна плоская форма — вложенность разворачивается в колонки |
| Посчитать и сгруппировать | таблица или SQL-инструмент | в редакторе такое не делается в принципе |
| Обработать регулярно | скрипт, jq | требует навыка, зато повторяемо |
Почему дерево неудобно
Браузер и редакторы показывают JSON деревом: можно свернуть и развернуть узлы, найти текст. Для файла на двадцать записей этого достаточно.
Дальше начинаются проблемы. Нельзя отсортировать, нельзя отфильтровать по условию, нельзя посчитать сумму, нельзя сравнить две выгрузки. Всё это операции над таблицей, а дерево таблицей не является — пока его не развернули.
Что значит «развернуть в таблицу»
Три шага, каждый со своим выбором:
- Найти массив с данными. В ответе API он обычно лежит под ключом рядом с метаданными.
- Собрать колонки как объединение ключей всех элементов — иначе поля, которых нет у первой записи, потеряются.
- Развернуть вложенность в колонки через точку. Подробно про это — в статье про вложенный JSON.
Осторожно с онлайн-сервисами
Большинство онлайн-просмотрщиков JSON просят вставить содержимое в поле на странице или загрузить файл на сервер. Для учебного примера это нормально, для рабочей выгрузки — нет: в JSON из корпоративной системы обычно лежат персональные данные, договоры или внутренние идентификаторы.
Разбор в браузере снимает вопрос: файл читается на устройстве, сетевых запросов с его содержимым нет, и это проверяется в инструментах разработчика.
Частые вопросы
Почему браузер показывает JSON как текст без подсветки?
Зависит от заголовка Content-Type. Если сервер отдал text/plain, браузер не включит просмотрщик.
Что делать, если файл не открывается из-за ошибки разбора?
Значит, JSON некорректен. Частая причина — склеенные ответы API: это уже JSON Lines, и читать его надо построчно.
Есть ли предел размера?
Для обычного JSON — да, он разбирается целиком. Свыше 512 МБ мы честно отказываемся, вместо того чтобы подвесить вкладку.