JSON-форматирование и валидатор
Валидатор JSON: точная строка и колонка ошибки, форматирование с отступом 2/4/табуляция, минификация и сортировка ключей.
Результат можно передать дальше:Сгенерировать TypeScript из этого JSONОткрыть в YAML
Последние документы
Вставленные JSON-документы остаются в истории этого браузера только до закрытия вкладки и не попадают в экспорт на странице «Закладки». Значения скрыты по умолчанию — раскрываются кнопкой «Показать».
Готовые примеры
Найдено: 5 из 5
- Форматировать JSON с отступомНеотформатированный JSON с хаотичными отступами подставлен в поле ввода: нажмите «Форматировать», чтобы привести его к читаемому виду с выбранным отступом.
- Минифицировать JSON в одну строкуЧитаемый JSON подставлен в поле ввода в режиме минификации: на выходе — одна строка без пробелов, удобно для отправки в запросах и экономии места.
- Проверить JSON и найти ошибкуПример с ошибкой в JSON: валидатор подсвечивает строку, колонку и фрагмент, где документ перестаёт быть валидным JSON.
- Отсортировать ключи JSONДокумент с перемешанным порядком ключей подставлен в поле: включённая сортировка приводит его к детерминированному виду — удобно для diff и сравнения версий конфигов.
- Раскрыть Unicode-экранированиеJSON с Unicode-экранированием (\u0418…) подставлен в поле: форматирование превращает служебные последовательности в читаемые символы, не меняя сами данные.
Что это и как пользоваться
Страница делает с одним и тем же текстом три вещи: проверяет его, переформатирует и минифицирует. Валидатор не ограничивается словом «неверный JSON» — он показывает строку, колонку и фрагмент с кареткой в месте, где разбор сломался, поэтому видно, где именно пропущена запятая или лишняя скобка.
Форматирование печатает документ с отступом 2 или 4 пробела либо табуляцией, минификация сжимает его в одну строку. Флажок сортировки ключей выстраивает ключи по алфавиту, но только на верхнем уровне объекта: вложенные объекты и порядок элементов массивов он не трогает, чтобы результат оставался предсказуемым.
Рядом с результатом показывается нормализованный вид документа, так что после обработки видно, что именно изменилось. Сортировка не меняет ни одного значения, поэтому два документа с одинаковыми данными после неё совпадают побайтово — ради этого флажок и нужен.
Ввод ограничен 5 млн символов, вложенность — 2000 уровнями: глубже форматирование не выполняется, чтобы страница не зависла на структуре, которую всё равно невозможно прочитать глазами.
Когда пригодится
- Проверить ответ API: вставить тело ответа и увидеть точное место поломки вместо общего сообщения об ошибке.
- Привести конфиг к читаемому виду перед коммитом: отступ 2 пробела плюс сортировка ключей дают детерминированный файл.
- Сжать документ в одну строку перед отправкой в запрос или вставкой в переменную окружения.
- Сравнить две версии конфига: отсортировать ключи в обеих, чтобы diff показывал только настоящие изменения.
Чего инструмент не делает
- Инструмент меняет форму записи, а не данные: значения, типы и порядок элементов массивов остаются прежними, ошибки в самих данных он не исправляет.
- Комментарии, одинарные кавычки и хвостовые запятые — ошибка разбора, а не повод угадать замысел: расширений JSONC и JSON5 страница не принимает.
- Сортировка работает на верхнем уровне объекта и не переупорядочивает массивы — если данные лежат в массиве объектов, порядок ключей внутри них останется исходным.
- Сеть не используется: документ обрабатывается во вкладке, и содержимое поля не попадает в адрес страницы при сохранении настроек.
Примеры
- Вход
{"users":[{"name":"Мария","role":"admin"}],"version":2}- Выход
{ "users": [ { "name": "Мария", "role": "admin" } ], "version": 2 }- Вход
{"b":2,"a":1,"name":"Иван"} с включённой сортировкой- Выход
{"a":1,"b":2,"name":"Иван"}
Частые вопросы
Чем JSON отличается от JavaScript-объекта?
JSON — это строгий текстовый формат обмена данными. Строки и имена ключей в нём всегда в двойных кавычках, нельзя писать комментарии и хвостовые запятые, значением не может быть функция. JavaScript-объект допускает одинарные кавычки, имена без кавычек и undefined, поэтому не всякий объект из кода является валидным JSON.
Поддерживает ли JSON комментарии?
Нет, стандарт RFC 8259 комментарии не предусматривает. Если вставить конфиг с // или /* */, парсер вернёт ошибку. Для таких файлов существуют форматы JSONC и JSON5, но это отдельные спецификации, и этот инструмент их не принимает — он работает со строгим JSON.
Почему JSON требует двойные кавычки?
По спецификации строковые значения и имена ключей всегда заключаются в "". Одинарные и обратные кавычки недопустимы. Если заменить их вручную нельзя, прогоните текст через этот инструмент как валидатор: он укажет номер строки и позицию с ошибкой.
Что такое хвостовая запятая и почему это ошибка?
Хвостовая запятая — это запятая после последнего элемента массива или ключа, например [1, 2,]. В JSON она запрещена, в отличие от современного JavaScript. Инструмент подсветит лишнюю запятую и предложит убрать её, чтобы текст снова стал валидным.
Чем JSON отличается от JSON5?
JSON5 расширяет JSON: разрешает одинарные кавычки, комментарии, хвостовые запятые и имена ключей без кавычек. Это удобно для конфигов, но JSON5 не читается стандартным JSON.parse. Для обмена данными между системами используйте строгий JSON.
Какой максимальный размер числа в JSON?
Сам формат числа не ограничивает, но JavaScript хранит их как числа двойной точности, точные только целые до 2 в степени 53 минус 1. Очень большие целые, например 64-битные идентификаторы, при парсинге теряют точность. Этот инструмент лишь форматирует текст и не преобразует числа в машинный тип, поэтому их вид сохраняется.
Можно ли в одном JSON несколько корневых значений?
Нет, корень должен быть одним объектом или одним массивом. Запись {"a":1}{"b":2} невалидна. Если нужно передать несколько независимых значений, оберните их в массив или в общий объект с ключами.