Как использовать
- Вставьте свой JSON в поле ввода слева (или нажмите «Загрузить пример», чтобы попробовать).
- Выберите отступ в 2 или 4 пробела.
- Нажмите «Форматировать», чтобы придать тексту более привлекательный вид, или «Сжать», чтобы сжать его до одной строки.
- Если JSON-файл содержит ошибки, ознакомьтесь с сообщением об ошибке, расположенным под полями ввода, чтобы выявить проблему.
- Нажмите «Копировать», чтобы скопировать результат в буфер обмена.
Пример
Ввод
{"name":"CodeKitHub","tools":["json","base64"],"free":true}Результат
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}Те же данные, отформатированные с отступом в 2 пробела. Функция «Минимизировать» действует наоборот: она удаляет все пробелы.
Что это за инструмент?
Форматировщик JSON принимает исходный, минимизированный или неструктурированный текст JSON и переформатирует его, добавляя правильные отступы и разрывы строк, чтобы текст стал легко читаемым. JSON (JavaScript Object Notation) — это наиболее распространённый формат данных, используемый в API, конфигурационных файлах и системах ведения журналов, однако серверы обычно отправляют его в виде одной длинной нечитаемой строки, чтобы сэкономить пропускную способность.
Этот инструмент также выполняет функцию валидатора JSON: он анализирует введенные данные по тем же строгим правилам, что и браузеры, поэтому если в вашем JSON отсутствует запятая, ключ не заключен в кавычки или есть лишняя запятая в конце, вы увидите точное сообщение об ошибке, а не просто незаметную ошибку.
Формально JSON описан двумя согласованными стандартами — RFC 8259 и ECMA-404, — причём спецификация намеренно строже самого JavaScript: именно поэтому фрагмент, который без проблем выполняется как JS-код, может не пройти здесь строгую валидацию JSON.
Практические советы
- Отлаживаете API? Сначала вставьте исходный текст ответа, а уже потом форматируйте его — валидатор точно укажет строку и столбец, в которых находится любая синтаксическая ошибка, что гораздо удобнее, чем прищуриваться, разглядывая однострочный набор символов.
- Для удобства чтения с экрана используйте отступ в 2 пробела и сжимайте JSON перед вставкой в URL, переменную среды или сообщение в чате — там пробелы только занимают место.
- Комментарии в стиле JSON5 и запятые в конце списка — две наиболее распространённые причины, по которым конфигурация, написанная вручную, «выглядит нормально», но не проходит валидацию: строгий JSON не допускает ни того, ни другого.
- В случае очень больших файлов (журналы, дампы баз данных) форматируйте только тот фрагмент, который вас интересует — так ваш редактор будет работать без задержек, а структуру будет проще отслеживать.
Как это вписывается в реальные рабочие процессы
Наиболее распространенный сценарий, с которым мы сталкиваемся: API возвращает JSON, закодированный в Base64 или минимизированный, в составе токена или полезных данных вебхука. Сначала декодируйте Base64, затем отформатируйте JSON, а в-третьих — сравните два ответа, если что-то изменилось между средами. Для каждого шага здесь предусмотрен специальный инструмент, и ваши данные ни на одном из этапов не покидают браузер.
Фронтенд-разработчики используют минимизацию не реже, чем форматирование: нужно разместить большой статический файл JSON? Его минимизация, как правило, позволяет сэкономить 20–30 % объёма ещё до начала сжатия с помощью gzip.
Типичные ошибки JSON и как их исправить
Большинство сообщений о «невалидном JSON» сводятся к небольшому набору повторяющихся причин. В таблице ниже — те, что чаще всего встречаются при ручном редактировании конфигурационных файлов или отладке скопированного ответа API.
| Ошибка | Пример | Исправление |
|---|---|---|
| Запятая в конце | {"a": 1, "b": 2,} | Уберите запятую после последнего элемента объекта или массива. |
| Одинарные кавычки | {'a': 1} | JSON требует двойные кавычки для ключей и строковых значений. |
| Ключ без кавычек | {a: 1} | Заключите каждый ключ в двойные кавычки: {"a": 1}. |
| Комментарии | { // заметка\n "a": 1 } | В строгом JSON нет синтаксиса комментариев — удалите // и /* */ перед проверкой. |
| Пропущенная запятая | {"a": 1 "b": 2} | Вставьте запятую между каждой парой ключ-значение. |
| NaN / undefined / Infinity | {"a": NaN} | Это валидно в JavaScript, но не в JSON — используйте null или строку. |
Типичные сценарии использования
- Чтение сжатого ответа API, возвращаемого одной нечитаемой строкой, с целью понимания его структуры в процессе отладки.
- Проверка файла конфигурации (например, package.json или файла настроек в формате JSON), который по неизвестной причине некорректно считывается приложением.
- Размещение удобного для чтения, отформатированного фрагмента JSON в отчете об ошибке, при рецензировании кода или в документации.
- Сжатие JSON-данных до минимального размера перед их вставкой в параметр URL или сохранением в столбце базы данных с ограничениями по размеру.
Зачем его использовать?
API вернул ошибку 400 одной нечитаемой строкой — вставьте её сюда, чтобы увидеть, какое именно поле не прошло проверку, вместо того чтобы вручную искать в стене текста.
Сборка падает с «Unexpected token in JSON at position 214» и больше никаких подсказок — вставьте файл, и сообщение об ошибке укажет точную строку и столбец.
Нужно вставить объект конфигурации в тег <script> или отправить его через API с ограничением на размер запроса — сначала минимизируйте и уберите лишние пробелы, прежде чем данные покинут ваш компьютер.
В JSON, который вы отлаживаете, есть данные клиентов или ключи API — здесь важно, что всё работает локально и ничего не отправляется на сторонний сервер просто чтобы прочитать содержимое.
Проверяете pull request коллеги с намеренно минифицированной JSON-фикстурой — отформатируйте её здесь, чтобы diff в ревью действительно был понятен.
Никакой регистрации между вами и инструментом — открывается на телефоне посреди дежурства в три часа ночи и работает точно так же, как на рабочем ноутбуке.
Часто задаваемые вопросы
Загружаются ли мои данные в формате JSON на сервер?
Нет. Этот инструмент работает исключительно в браузере с использованием JavaScript. Ваши JSON-файлы никогда не покидают ваше устройство, что позволяет безопасно использовать его с конфиденциальными или внутренними данными.
Почему мой JSON неверный?
Наиболее распространёнными причинами являются: пропущенные или лишние запятые, ключи без двойных кавычек, одинарные кавычки вместо двойных, запятые после последнего элемента, а также комментарии (в JSON комментарии не допускаются). Сообщение об ошибке под полем ввода указывает, что именно обнаружил парсер.
В чём разница между «Формат» и «Минимизировать»?
Функция «Формат» добавляет отступы и разрывы строк, чтобы сделать JSON удобным для чтения человеком. Функция «Минимизировать» удаляет все ненужные пробелы, чтобы максимально уменьшить размер JSON — это полезно перед его передачей или встраиванием.
Есть ли ограничения по размеру?
Инструмент не устанавливает жестких ограничений. Обработка очень больших файлов (размером в десятки мегабайт) может занимать много времени в зависимости от вашего устройства, поскольку вся обработка происходит локально в браузере.
Может ли этот код автоматически исправить некорректный JSON?
Нет — инструмент точно указывает, где в JSON-файле есть ошибки, чтобы вы могли их исправить, но он не пытается угадывать и не изменяет ваши данные. Это сделано намеренно: «исправление» данных без уведомления может скрыть настоящие ошибки.
Поддерживается ли JSON5 или JSONC (комментарии, запятая в конце, ключи без кавычек)?
Нет, и это осознанное решение — валидация строго следует RFC 8259, тому же стандарту, который требуют ваш API и JSON.parse(). Если нужно отформатировать файл JSONC (например, tsconfig.json или настройки VS Code), сначала удалите комментарии — иначе парсер пометит их как ошибку.
Чем это отличается от простого JSON.stringify в консоли браузера?
JSON.stringify(JSON.parse(x), null, 2) делает то же самое переформатирование, но требует открытой консоли, а при невалидном вводе выдаёт лишь общую ошибку без указания строки и столбца — в отличие от этого инструмента.
Работает ли инструмент с сильно вложенным JSON, например ответами GraphQL?
Да — искусственного ограничения по глубине вложенности нет, есть только практический предел памяти браузера и терпения при прокрутке. Именно на глубоко вложенных структурах форматирование помогает больше всего, поскольку однострочная версия становится почти нечитаемой уже после третьего-четвёртого уровня.
Работает ли инструмент без подключения к интернету?
Да. После загрузки страницы вся логика разбора и форматирования выполняется локально на JavaScript — можно отключиться от сети и продолжать форматировать JSON.
Работает ли это в старых браузерах?
Инструмент работает в любом современном браузере с поддержкой JavaScript ES6 (актуальные версии Chrome, Firefox, Safari, Edge). В очень старых браузерах или при отключённом JavaScript страница просто не загрузится, поскольку вся обработка выполняется локальным движком JS.