Валидатор 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 с учетными данными.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Конвертер CMYK в RGB
Преобразуйте проценты CMYK в приблизительные значения RGB и Hex для быстрого экранного предпросмотра по стандартной формуле.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Инструмент доступен на других языках
- JSON-Validator [DE]
- Validateur JSON [FR]
- JSON-validator [SV]
- JSON 검사기 [KO]
- JSON-validator [NL]
- مدقّق JSON [AR]
- Validador JSON [ES]
- JSON Validator [ID]
- JSONバリデーター [JA]
- ตัวตรวจสอบความถูกต้องของ JSON [TH]
- Trình kiểm tra JSON [VI]
- Walidator JSON [PL]
- Validador JSON [PT]
- JSON Doğrulayıcı [TR]
- JSON 校验器 [ZH]
- JSON Validator [EN]
- Validator JSON [IT]