Форматирование и валидация JSON: практическое руководство
Зачем форматировать JSON, распространённые ошибки и как бесплатно валидировать JSON прямо в браузере — без установки инструментов.
JSON (JavaScript Object Notation) — это общий язык веб-API. Он читаемый, лёгкий и нативно поддерживается в каждом современном языке программирования. Но сырой JSON из ответа API или лог-файла часто представляет собой одну минифицированную строку — невозможно прочитать с первого взгляда. Вот почему форматирование важно и как сделать это бесплатно за секунды.
Зачем форматировать JSON?
Читаемость. Объект JSON размером 2 КБ в одну строку против правильно отступленной структуры — разница между отладкой за 10 секунд и за 10 минут. Ключи легко находятся, уровни вложенности очевидны, а пропущенные скобки сразу бросаются в глаза.
Отладка. Когда API возвращает неожиданные данные, форматированный JSON позволяет быстро просмотреть структуру и сразу обнаружить проблемный ключ. При написании отправляемого тела запроса форматирование сначала выявляет структурные ошибки до потраченного зря обращения к серверу.
Код-ревью. Добавление в репозиторий форматированных конфигов JSON и фикстур API делает диффы читаемыми. «Ключ timeout изменился с 30 на 60» очевидно в форматированном диффе и невидимо в минифицированном.
Распространённые ошибки JSON и как их исправить
Замыкающие запятые. Стандартный JSON не допускает замыкающих запятых после последнего элемента в объекте или массиве. {"a": 1,} недопустим. Наш форматировщик обнаруживает это немедленно.
Одинарные кавычки. JSON требует двойных кавычек как для ключей, так и для строковых значений. {'key': 'value'} — это недопустимая нотация в стиле JavaScript — используйте {"key": "value"}.
Неквотированные ключи. В отличие от объектных литералов JavaScript, ключи JSON должны быть в кавычках. {key: "value"} недопустимо.
Комментарии. JSON не поддерживает комментарии. Если ваш JSON содержит комментарии // или /* */, сначала удалите их — или рассмотрите JSONC (JSON с комментариями) для конфигурационных файлов.
Минификация vs. форматирование
- Форматирование (prettify / pretty-print): добавляет последовательные отступы и переносы строк. Используйте при чтении, отладке или добавлении в систему контроля версий.
- Минификация (compact / uglify): удаляет все пробелы. Используйте в продакшен-ответах API или при встраивании JSON в исходный код для уменьшения размера нагрузки. Типичный ответ API уменьшается на 30–40% после минификации.
Как работает наш форматировщик JSON
Наш Форматировщик JSON использует JSON.parse() для валидации и разбора входных данных, затем JSON.stringify(parsed, null, 2) для повторной сериализации с отступами в 2 пробела. Всё работает в вашем браузере — никакой загрузки, никаких обращений к серверу, никакого хранения данных.
Валидация в реальном времени означает, что вы видите ошибку при вводе: строка статуса показывает точную позицию первой синтаксической ошибки, чтобы вы могли исправить её без запуска кода.
Попробуйте Форматировщик и валидатор JSON — вставьте ваш JSON и отформатируйте или валидируйте его одним кликом, бесплатно и конфиденциально.