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