JSON
JSON Schema Validator
Проверка JSON-данных на соответствие JSON Schema (стиль draft-07) — с точным путём и объяснением для каждого нарушения.
JSON Schema описывает ожидаемую структуру JSON-документа — какие поля обязательны, какого они типа, какие ограничения на значения. Инструмент проверяет конкретные данные против такой схемы и показывает точный путь к каждому нарушению.
Как пользоваться
- Вставьте JSON Schema в одно поле, данные для проверки — во второе.
- Результат показывает каждое нарушение отдельно: точный путь к проблемному полю и понятное объяснение, почему оно не соответствует схеме.
- Валидные данные сразу отмечаются как полностью соответствующие схеме.
Типичные сценарии
- Проверка ответа API стороннего сервиса заявленной документации перед интеграцией.
- Отладка собственной JSON Schema — почему валидные на первый взгляд данные отклоняются.
- Валидация конфигурационного файла против схемы перед деплоем.
Что стоит помнить
JSON Schema имеет несколько версий (draft-07, 2019-09, 2020-12) с небольшими отличиями в синтаксисе — проверяйте, какую версию ожидает ваш валидатор в продакшн-коде.
required проверяет лишь наличие поля, а не его значение — пустая строка или null всё равно считается «присутствующим» полем, если тип это позволяет.
Статья об этом инструменте: JSON Schema: как описать и проверить структуру JSON
Часто задаваемые вопросы
Что на самом деле проверяет валидация по JSON Schema?
Она проверяет, что ваши JSON-данные соответствуют правилам, определённым в схеме — обязательные поля, типы данных, диапазоны значений, шаблоны строк и многое другое, — а не просто то, что сам JSON синтаксически корректен.
Какую версию JSON Schema поддерживает этот инструмент?
Этот инструмент проверяет по draft-07, одной из наиболее широко принятых версий — схемы, написанные для других версий, могут использовать ключевые слова, которые здесь не распознаются.
Отправляется ли моя схема или данные куда-либо для валидации?
Нет. Валидация происходит полностью в вашем браузере с помощью JavaScript-библиотеки — ничего не загружается на сервер.
Что делает additionalProperties: false?
По умолчанию объект может содержать любые поля сверх описанных в properties. additionalProperties: false запрещает лишние поля — полезно, чтобы поймать опечатку в названии ключа или случайно оставленное debug-поле.
Можно ли описать поле, которое допускает несколько типов?
Да, через массив в type, например "type": ["string", "null"], если поле может быть строкой или null. Для более сложных вариантов используют ключевые слова oneOf, anyOf или allOf.