Валидатор JSON Schema
Последнее обновление: 2 октября 2026 г.
Проверьте документ JSON по JSON Schema и увидьте каждое невыполненное ограничение с его путём. И документ, и схема разбираются и проверяются в браузере.
Что проверяется
JSON Schema описывает, какую форму документу разрешено иметь: какие свойства есть, какого они типа, какие диапазоны и шаблоны допустимы. Эта страница проверяет документ по схеме и перечисляет все места, где он не соответствует, каждое с путём, чтобы его было легко найти.
Поддерживаются ключевые слова: type, const, enum, required, properties, additionalProperties, minProperties, maxProperties, items (одна схема или кортеж схем), minItems, maxItems, uniqueItems, minLength, maxLength, pattern, minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, allOf, anyOf, oneOf, not и локальные указатели $ref внутрь той же схемы.
Что намеренно не делается
- Нет удалённых
$ref. Разрешаются только указатели внутри одной схемы (#/$defs/…,#/definitions/…). Загрузка другого файла означала бы сетевой запрос — именно то, чего этот инструмент избегает. formatне является проверкой. В новых черновикахformat— аннотация, а не ограничение, и здесь он так и трактуется:formatсо значениемemailне отклонит некорректный адрес.- Часть ключевых слов не реализована:
patternProperties,unevaluatedProperties,if/then/else,dependentSchemas,contains. Схема, использующая их, всё равно проверяет остальные ключевые слова, но нереализованные не применяются — поэтому не считайте результат «допустимо» полным соответствием для схемы, построенной на них. - Схема не проверяется по метасхеме. Синтаксически корректная, но логически неверная схема может просто ничему не соответствовать; эта страница проверяет документ, а не правильность самой схемы.
Как читать ошибки
Каждая ошибка выводится с путём: $ — корень документа, точка ведёт к свойству, квадратные скобки индексируют массив. required указывается на объекте, который должен был содержать свойство, — ограничение относится к объекту, а не к отсутствующему свойству, — и имя свойства указано в сообщении. anyOf и oneOf выводятся один раз на том экземпляре, который не прошёл, а не по разу на ветвь: стена ошибок по ветвям скрыла бы настоящую.
Частые вопросы
Какие ключевые слова JSON Schema поддерживаются?
type, const, enum, required, properties, additionalProperties, minProperties, maxProperties, items (одна схема или кортеж схем), minItems, maxItems, uniqueItems, minLength, maxLength, pattern, minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, allOf, anyOf, oneOf, not и локальные $ref.
Что намеренно не поддерживается?
Удалённые $ref (разрешаются только указатели внутри той же схемы), format как проверка, patternProperties, unevaluatedProperties, if/then/else и dependentSchemas. Схема, использующая их, всё равно проверяет перечисленные выше ключевые слова, но нереализованные не применяются — поэтому не считайте результат «допустимо» полным соответствием для схемы, построенной на них.
Проверка выполняется на сервере?
Нет. И документ, и схема разбираются через JSON.parse в вашем браузере и проверяются в памяти. Ничего не загружается, и страница работает при отключённой сети.
Почему ошибка об отсутствующем обязательном свойстве указывается на родительском пути?
Потому что там находится ограничение. В JSON Schema required применяется к объекту, а не к отсутствующему свойству, поэтому ошибка выводится на пути объекта — например, $, а не $.name, — а имя свойства указано в сообщении.
Как выводятся ошибки anyOf и oneOf?
Одной ошибкой на том экземпляре, который не прошёл, а не по одной на каждую ветвь. anyOf не проходит, когда не совпала ни одна ветвь; oneOf — когда число совпавших ветвей не равно единице, и в сообщении сказано, сколько совпало. Перечисление внутренних ошибок каждой ветви скрыло бы настоящую.
Он сообщает об ошибке в самой схеме или проверяет только документ?
Он проверяет документ по схеме. Если сама схема не является допустимым JSON, об этом сообщается отдельно. Схема не проверяется по метасхеме JSON Schema, поэтому синтаксически верная, но логически неверная схема может просто ничему не соответствовать.
Нужно сравнить два документа? Для этого есть Сравнение JSON. Нашли ошибку? Свяжитесь с нами.