Валидатор JSON
Вставьте любой документ JSON и узнайте, парсится ли он без ошибок по RFC 8259. Для некорректного ввода вы получите точное описание проблемы, висячая запятая после последнего элемента массива, ключ без кавычек, незакрытая строка, одинарные кавычки там, где JSON требует двойных, неправильные escape-последовательности, а также строку и столбец, где парсер сдался. Полезно при отладке ответа API, файла конфигурации, package.json, который вручную правил коллега, или вывода генератора кода.
Как работает проверка JSON
-
1
Вставьте свой JSON
Закиньте payload, файл конфигурации или ответ API. Пробелы допустимы; табуляции и комментарии: нет (в чистом JSON нет комментариев).
-
2
Парсинг строгим парсером RFC 8259
Валидатор отклоняет все, что запрещено спецификацией: висячие запятые, ключи без кавычек, одинарные кавычки, `undefined`, шестнадцатеричные числа.
-
3
Прочитайте ошибку
Если проверка не прошла, вы получите сообщение парсера и приблизительное место: этого достаточно, чтобы сразу перейти к нужному символу.
-
4
Исправьте и проверьте снова
Устраните проблему, вставьте заново и убедитесь, что документ валиден, прежде чем коммитить или отправлять.
Что разрешает строгий JSON, и чего не разрешает
Вокруг ходит немало форматов «почти JSON» (JSON5, JSONC, HJSON, YAML-подобные гибриды). Сама спецификация JSON небольшая и строгая; этот валидатор сообщает, переживет ли ваш документ строгий парсер, а именно его и запускает большинство нижестоящих систем.
Правила, на которых спотыкается большинство
| Правило | Валидно | Невалидно |
|---|---|---|
| Ключи, строки в двойных кавычках | {"a": 1} |
{a: 1} |
| Строки только в двойных кавычках | "hello" |
'hello' |
| Без висячих запятых | [1, 2, 3] |
[1, 2, 3,] |
| Без комментариев | (нет) | // comment или /* */ |
Числа: без ведущего +, без .5 |
0.5 |
+1, .5 |
| Только зарезервированные литералы | true, false, null |
undefined, NaN |
| Кодировка UTF-8 | Юникод-строки | Недопустимые последовательности байтов |
Частые ошибки и что они означают
- «Unexpected token
}», у вас висячая запятая перед закрывающей фигурной скобкой. - «Expected property name», ключ без кавычек или вы забыли кавычки вокруг открывающего ключа.
- «Unexpected end of input», открывающая
{или[не закрыта; посчитайте скобки. - «Bad control character», табуляция, перенос строки или другой управляющий байт внутри строкового литерала. Экранируйте их как
\t,\nи т. д. - «Duplicate key», формально это не ошибка по спецификации JSON (спецификация говорит SHOULD быть уникальными), но многие валидаторы предупреждают. Валидатор помечает это как уведомление, а не как жесткую ошибку.
Если нужны более мягкие форматы
- JSON5 допускает висячие запятые, комментарии и одинарные кавычки. Используйте парсер JSON5, если это ваш целевой формат.
- JSONC (JSON с комментариями), это то, что используют настройки VS Code. Удаляйте комментарии перед строгим парсингом.
- YAML, это другой формат; не думайте, что это «просто JSON с отступами».
Советы
- Проверяйте перед коммитом. Опечатка в
package.jsonили в конфигурации CI ломает всю сборку, пока кто-нибудь не заметит. - Форматируйте красиво после проверки, чтобы diff при ревью был читаемым. Однострочный файл JSON валиден, но ужасен для ревью.
- Для больших payload используйте потоковую проверку (например,
jqв командной строке). Парсинг в браузере с трудом тянет больше нескольких МБ.
Часто задаваемые вопросы
Этот инструмент проверяет только синтаксическую корректность, это правильно сформированный JSON? Для структурных правил (обязательные поля, значения enum, длины строк) используйте валидатор JSON Schema. Эти два шага дополняют друг друга: нет смысла запускать проверку по схеме на документе, который и так не является валидным JSON.
Потому что в стандартном JSON нет комментариев. // и /* */, это здравое расширение (JSONC, JSON5), но чистый JSON их отклоняет. Удаляйте комментарии перед отправкой строгому потребителю или переходите на JSON5 по всему стеку.
Невалидны в строгом JSON. Спецификация допускает только конечные числа. Сериализуйте их как строки ("NaN", "Infinity") или как null, в зависимости от того, как ваш потребитель обрабатывает отсутствующие данные.
Нет, проверка выполняется в вашем браузере, поэтому вставленный payload никогда не покидает страницу. Безопасно для конфиденциальных файлов конфигурации и ответов API с учетными данными.
Сопутствующие инструменты
Смешивание цветов
Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.
Генератор вымышленных телефонных номеров
Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.
Генератор конфигурации webpack
Создайте webpack.config.js для webpack 5 по короткой форме: задайте entry, папку вывода и режим, затем включите TypeScript, Babel, загрузчик CSS, HtmlWebpackPlugin и сервер разработки.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Генератор бейджей README
Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.
Генератор случайных адресов
Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.
Инструмент доступен на других языках
- Walidator JSON [PL]
- JSON-validator [SV]
- JSONバリデーター [JA]
- ตัวตรวจสอบความถูกต้องของ JSON [TH]
- Trình kiểm tra JSON [VI]
- JSON-Validator [DE]
- JSON 검사기 [KO]
- Validador JSON [PT]
- Validador JSON [ES]
- مدقّق JSON [AR]
- JSON Validator [ID]
- JSON-validator [NL]
- Validateur JSON [FR]
- JSON Validator [EN]
- Validator JSON [IT]
- JSON Doğrulayıcı [TR]
- JSON 校验器 [ZH]