Просмотр JSON

Красивый вывод, проверка и анализ документов JSON с необязательной сортировкой ключей и элементами свернуть/развернуть.

Красивый вывод, проверка и анализ документов JSON с необязательной сортировкой ключей и элементами свернуть/развернуть. Красивый вывод, проверка и анализ документов JSON с необязательной сортировкой ключей и элементами свернуть/развернуть.

Array

        
    

Справка

Что такое JSON и почему его стоит просматривать по-другому

JSON (JavaScript Object Notation) - самый распространённый текстовый формат для обмена структурированными данными в вебе: файлы конфигурации, ответы API, записи логов, хранилища документов и многое другое. Он компактен, удобен для чтения человеком и тривиально разбирается машинами, поэтому почти каждый современный сервис «говорит» на нём.

Сырой документ JSON редко полезен сам по себе. API и инструменты часто выдают одну длинную строку без пробелов, потому что это кратчайшее представление. Когда вы открываете такой документ в редакторе, его трудно просматривать, трудно заметить несоответствие скобок и легко потерять место при подсчёте фигурных скобок. Просмотр JSON решает это, переиздавая документ с постоянными отступами, так что структура становится очевидной с первого взгляда.

Полезные возможности

Красивый вывод позволяет выбрать размер отступа (обычно два или четыре пробела) и немедленно перерисовывает документ. Некоторые просмотрщики также позволяют сортировать ключи по алфавиту, что неоценимо при сравнении двух данных от одного сервиса: когда ключи выравниваются по вертикали, можно просматривать различия значений, не сопоставляя по позиции. Строка статистики, сообщающая количество байтов и узлов, полезна, когда вы собираетесь вставить данные в форму с лимитом 1 МБ: она точно говорит, насколько он велик, без открытия терминала.

Просмотрщик также является валидатором. Сам акт разбора с JSON.parse выбросит подробную ошибку, указывающую точную строку и столбец первого недопустимого токена, поэтому вы сразу видите, почему ваш документ отказывается загружаться. Бóльшая часть производственных инструментов выдаёт ошибки в той же точке, поэтому сообщение, которое вы видите здесь, совпадает с тем, что сказали бы ваш бэкенд, фронтенд-фреймворк или сборочный конвейер.

Советы по работе

Используйте элементы свернуть/развернуть, чтобы сосредоточиться на верхнем уровне глубоко вложенного документа, углубитесь до нужного раздела и скопируйте нужную ветвь. Если вы отлаживаете ответ API, сначала отсортируйте ключи, чтобы вставки и удаления в разных позициях не сбивали с толку. При сомнениях вставьте документ в новую вкладку, подправьте форматирование и используйте вывод как каноническую версию для документации или сообщений коммита.

Собственная разработка, используется только нативный JSON.parse и JSON.stringify. Ваш ввод никогда не покидает браузер.

Часто задаваемые вопросы

Сохраняет ли просмотрщик комментарии внутри документа JSON?
Стандартный JSON не допускает комментариев. Если ваш ввод содержит комментарии // или /* */, парсер отвергнет его; удалите их заранее или преобразуйте файл в JSON5/JSONC с помощью специального инструмента.
Почему количество байтов не совпадает с тем, что я скопировал из API?
Количество байтов - это размер отрисованного вывода. Если включить красивый вывод с отступом в 2 пробела, вывод вырастет. Используйте режим без отступов, если нужен размер «на проводе».
Может ли просмотрщик обработать очень большие документы JSON?
Да. Просмотрщик разбирает весь документ в памяти и переиздаёт его, поэтому практический предел - доступная куча вашего браузера (сотни МБ комфортно на современном ноутбуке). Для многогигабайтных документов рассмотрите потоковый подход.
Изменит ли сортировка ключей смысл документа?
Нет. Объекты JSON - это неупорядоченные коллекции пар имя/значение. Сортировка меняет только выдаваемый текст, не семантику. Бóльшая часть парсеров читает ключи в хэш-карту независимо от порядка.
Почему парсер пишет «Unexpected token» в определённом столбце?
JSON.parse сообщает о первом токене, который он не может осмыслить. Строка/столбец, которые он даёт, - это место начала токена; сама ошибка часто на один символ раньше (некранированная кавычка, пропущенная запятая или лишняя запятая в конце объекта).
Отправляется ли мой документ на сервер?
Нет. Весь разбор, сортировка и переформатирование происходят внутри вашего браузера через нативные JavaScript API. Этапа загрузки нет.