Валидатор JSON Schema

Проверка данных JSON на соответствие определениям JSON Schema. Подробные отчёты об ошибках с путями. Вся обработка выполняется в вашем браузере.

Мгновенная проверка Детали ошибок Обработка на стороне клиента

Как использовать валидатор JSON Schema

1

Введите схему

Определите вашу JSON Schema, описывающую ожидаемую структуру.

2

Введите данные

Вставьте данные JSON, которые вы хотите проверить на соответствие схеме.

3

Проверка

Нажмите «Проверить» и просмотрите результаты на наличие ошибок.

Что такое JSON Schema?

JSON Schema — это словарь, позволяющий аннотировать и проверять JSON-документы. Он предоставляет контракт для того, какие данные JSON требуются приложению и как с ними взаимодействовать. JSON Schema используется для проверки, документации и генерации тестовых данных.

Ключевые возможности

Проверка типов

Проверка типов: string, number, integer, boolean, array, object, null

Ограничения

Минимальная/максимальная длина, диапазон, шаблон, обязательные поля и многое другое

Определение структуры

Определение вложенных объектов, массивов и сложных структур данных

Часто задаваемые вопросы

Какая версия JSON Schema поддерживается?

Этот инструмент поддерживает JSON Schema Draft-07, Draft 2019-09 и Draft 2020-12 через библиотеку Ajv. Поддерживается большинство распространённых возможностей схемы.

Можно ли проверять вложенные объекты?

Да! JSON Schema поддерживает глубоко вложенные объекты и массивы. Вы можете определять свойства и элементы на любом уровне вложенности с индивидуальными правилами проверки для каждого поля.

Что произойдёт, если моя схема некорректна?

Инструмент сначала проверяет, что сама ваша схема является корректной JSON Schema. Если схема содержит ошибки, они будут отображены до попытки проверки данных.

Какие ключевые слова JSON Schema используются чаще всего?

type (string, number, object, array, boolean, null), properties с вложенными схемами, required со списком обязательных ключей, enum для фиксированных наборов значений, pattern для строк, ограниченных регулярным выражением, а также проверки диапазона minimum/maximum и minLength/maxLength. additionalProperties: false ужесточает объекты, запрещая лишние ключи. Вместе они покрывают большую часть правил валидации API.

Как ведут себя ключевые слова format, такие как date-time и email?

В современном JSON Schema format по умолчанию является аннотацией, а не автоматическим утверждением — валидаторы применяют его только при соответствующей настройке; спецификация 2020-12 сделала это явным, введя отдельный словарь format-assertion. Если проверка должна гарантироваться, используйте pattern или собственное ключевое слово, а в остальных случаях рассматривайте format как метаданные для совместимости.

Что такое $ref и как работает повторное использование схем?

$ref, указывающий на #/$defs/address, ссылается на фрагмент схемы внутри $defs и проверяет данные по нему везде, где используется, — это механизм устранения дублирования. В черновике 2020-12 прежний definitions был переименован в $defs, а для рекурсивных структур вроде деревьев комментариев формализован $dynamicRef. Ссылки могут также указывать на внешние документы, хотя чаще схемы объединяют локально в один документ.

Чем различаются oneOf, anyOf и allOf?

allOf требует прохождения проверки по каждой вложенной схеме — это пересечение, используемое для дополнения базовой схемы дополнительными ограничениями. anyOf требует прохождения хотя бы по одной — это объединение, применяемое для полиморфных данных. oneOf требует ровно одну: успешная проверка двух или нуля вложенных схем считается ошибкой, что строже, чем ожидают многие, и чаще всего приводит к неожиданным ошибкам при пересекающихся схемах.

Что изменилось между draft-07 и 2020-12?

2020-12 разделил спецификацию на словари, согласовываемые по отдельности (validation, annotation, format-assertion), переименовал definitions в $defs, упростил exclusiveMinimum до обычного числа и заменил прежнее ключевое слово items связкой prefixItems плюс items. Большинство инструментов поддерживает обе версии: draft-07 остаётся наиболее распространённой, но 2020-12 — действующий опубликованный стандарт.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}