Форматтер JSON
Вставьте JSON, чтобы красиво оформить его с правильными отступами, или минифицировать до самого компактного валидного вида. Невалидный JSON помечается с указанием точной строки и столбца ошибки.
- Файлы никогда не покидают ваше устройство
- Бесплатно, без регистрации
- Без водяных знаков
- Работает офлайн после загрузки
Как пользоваться: форматтер json
- 1
Вставьте ваш JSON
Вставьте или введите JSON в поле ввода. Он разбирается по мере ввода.
- 2
Выберите стиль
Выберите отступ в 2 пробела, 4 пробела или табуляцию, либо переключитесь на минифицированный вывод.
- 3
Скопируйте результат
Скопируйте отформатированный JSON в буфер обмена или скачайте его как файл .json.
Почему одинаковый на вид текст может оказаться невалидным JSON
JSON — это строгое подмножество того, что допускают объектные литералы JavaScript, и именно в этом разрыве кроется большинство ошибок «невалидный JSON». Запятая после последнего элемента массива или объекта допустима в современном JavaScript, но является синтаксической ошибкой в JSON. Строки в одинарных кавычках прекрасно работают в JavaScript, но JSON их отвергает — он требует двойные кавычки. Ключи объекта без кавычек — запись `{name: "value"}` вместо `{"name": "value"}` — валидное сокращение в JavaScript и невалидный JSON. Ни один из этих случаев не является редкой аномалией: это ровно те привычки, выработанные при написании JavaScript, которые незаметно превращают документ, похожий на JSON, в документ, JSON не являющийся.
Комментарии — ещё один частый источник путаницы, потому что немало форматов конфигурационных файлов, похожих на JSON, — и даже некоторые производные от JSON форматы, используемые намеренно, — допускают комментарии `//` или `/* */`, тогда как в самой спецификации JSON синтаксиса комментариев нет вовсе. Если скопировать «JSON»-конфиг, в котором на самом деле есть комментарии, в строгий парсер, разбор сразу же завершится ошибкой, и исправление — либо удалить комментарии, либо признать, что файл изначально не был стандартным JSON.
Почему важна точная позиция ошибки
Парсер, который сообщает только «невалидный JSON» без указания места, заставляет вас глазами просматривать весь документ в поисках одной пропущенной запятой или неэкранированной кавычки — а это становится по-настоящему утомительным уже после нескольких десятков строк. Указание точной строки и столбца первой проблемы превращает такой поиск в прямое попадание — ошибка описывает конкретный символ, а не общий расплывчатый сбой, — и это разница между исправлением большого ответа API за секунды и минутами ручного просмотра.
Стоит отметить, что ошибка всегда указывает на *первую* проблему, которую встретил парсер, а не обязательно на все проблемы в документе: документ с двумя синтаксическими ошибками покажет только первую, и её исправление может выявить вторую лишь при следующей попытке, поскольку парсер, уже не сумевший разобрать структуру, не может надёжно продолжать поиск дальнейших проблем после первой точки, в которой он запутался.
Форматирование против минификации — разная аудитория для одних и тех же данных
Красиво оформленный JSON с последовательными отступами и переносами строк существует ради человека, который его читает — отлаживает ответ API, просматривает конфигурационный файл, разбирается в структуре данных с одного взгляда. Программе, разбирающей тот же JSON, эта структура совершенно не важна, поэтому минифицированный вывод убирает все символы, существующие исключительно ради удобства чтения человеком: отступы, переносы строк и любые пробелы между токенами, не обязательные для их разделения. Представленные данные в обеих формах идентичны — различается только количество байт, нужное для передачи или хранения, причём для глубоко вложенных структур разница часто существенна.
Практическое правило простое: форматируйте JSON, пока с ним работаете — читаете, отлаживаете, редактируете вручную, — и минифицируйте перед тем, как отправить туда, где важен размер: в тело HTTP-запроса, параметр запроса URL или значение, хранящееся в переменной окружения с ограничением по длине.
Часто задаваемые вопросы
Отправляется ли мой JSON на сервер?
Нет. Разбор и форматирование выполняются встроенным JSON-движком браузера. Ничего не передаётся, не логируется и не сохраняется, поэтому инструмент безопасен для ответов API с рабочими данными.
Почему написано, что мой JSON невалиден?
Самые частые причины — завершающие запятые, одинарные кавычки вместо двойных, ключи без кавычек и комментарии: ничто из этого не является валидным JSON, даже если JavaScript это допускает. Сообщение об ошибке указывает точную позицию.
В чём разница между форматированием и минификацией?
Форматирование добавляет отступы и переносы строк, чтобы структура была читаемой. Минификация убирает все необязательные символы, делая payload максимально компактным — это нужно при встраивании JSON в запрос или конфигурационный файл.
Может ли он обработать очень большие файлы?
Документы размером до нескольких мегабайт форматируются мгновенно. После примерно 10 МБ узким местом становится сам встроенный JSON-парсер браузера, независимо от используемого инструмента.
Частые задачи: форматтер json
Вам также может понадобиться
Форматтер XML
Расставляйте отступы в XML и находите несовпадающие теги
Форматировщик HTML
Аккуратное форматирование и расстановка отступов в HTML
CSV в JSON
Конвертация экспорта из таблиц в JSON
Кодировщик и декодировщик Base64
Кодирование и декодирование Base64 и Base64URL
Форматировщик CSS
Форматирование и минификация таблиц стилей
Минификатор CSS
Сжимайте таблицы стилей настоящим минификатором, понимающим CSS
Генератор хешей
MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Форматировщик JavaScript
Форматирование JS и TypeScript настоящим парсером