Форматер и минификатор JSON (с валидацией и красивым выводом)
Вставьте любой JSON для форматирования с отступами 2/4/8 пробелов или минификации до одной строки. Неверный JSON показывает ошибку разбора, чтобы вы могли быстро найти проблему.
{
"hello": "world",
"items": [
1,
2,
3
]
}Как это работает
Что делает этот инструмент
JSON — строгий формат: каждая кавычка, запятая и скобка должны быть на правильном месте. Браузеры и API возвращают загадочные сообщения «Unexpected token», когда что-то не так, и проблема часто не видна с первого взгляда. Этот форматер разбирает ввод нативным парсером JSON браузера, затем повторно сериализует его красиво (с отступами) или в минифицированном виде (без пробелов).
Если разбор не удаётся, вы получаете саму ошибку — обычно с позицией проблемного символа. Отсюда можно быстро найти пропущенную запятую, неэкранированную кавычку или лишнюю запятую в конце.
Форматирование vs минификация
Форматирование с отступами: стандартный способ чтения JSON. 2 пробела — принято в экосистеме JavaScript; 4 пробела распространены в Python и Java. Выбирайте то, что принято в вашем проекте.
Минификация: сжатие в одну строку без пробелов. Удобно при встраивании JSON в URL, переменные окружения или любое место, где пробелы имеют значение. Разница в размере существенна: типичный красиво отформатированный конфиг-файл уменьшается на 20–40% при минификации.
Типичные проблемы с JSON
Замыкающие запятые. Разрешены в JavaScript, но не в JSON. {a:1, b:2,} разбирается в редакторе кода, но даёт сбой при передаче.
Одинарные кавычки. JSON требует двойных кавычек как для ключей, так и для строковых значений. {'a': 1} — невалидный JSON. {"a": 1} — правильно.
Комментарии. В JSON нет комментариев. // или /* */ внутри JSON ломают разбор. JSONC (используемый в конфигах VS Code) поддерживает комментарии, но это не стандартный JSON.
Числа. JSON не поддерживает NaN и Infinity. Используйте null или оберните в строку в зависимости от потребителя.
Частые вопросы
›Поддерживается ли JSONC (JSON с комментариями)?
Пока нет. Сначала удалите комментарии или используйте инструмент с поддержкой JSONC.
›Какой максимальный размер?
Современные браузеры обрабатывают многомегабайтный JSON, хотя textarea может замедлиться после ~1 МБ. Для больших файлов используйте десктопный инструмент.
›Почему мой JSON невалиден?
Чаще всего: замыкающая запятая, одинарные кавычки или неэкранированная кавычка внутри строки. Ошибка парсера указывает на столбец, где обнаружена проблема.
›Можно ли сортировать ключи по алфавиту?
Пока не в этой версии. Самый чистый вариант — использовать jq с флагом --sort-keys; возможно, добавим эту опцию позже.
›Поддерживается ли глубоко вложенный JSON?
Да. Браузерный парсер JSON обрабатывает любую практическую глубину вложенности.
›Почему минификация не сжимает файл 1 МБ до 1 байта?
Минификация только удаляет пробелы. Сами данные остаются. Для реального уменьшения размера используйте gzip или бинарный формат вроде MessagePack.
›Данные куда-то отправляются?
Нет. Весь разбор и форматирование происходят в вашем браузере.
›Что насчёт валидации JSON Schema?
Этот инструмент проверяет только синтаксис. Для валидации по схеме используйте валидатор JSON Schema с вашим файлом схемы.
Похожие инструменты
Обновлено: