Проверка JSON по JSON Schema (2020-12, 2019-09, draft 7) с точным местом каждой ошибки
Работает в вашем браузере. Ничего из того, что вы вводите, никуда не отправляется. Проверено 16 октября 2026 г..Валидатор JSON Schema проверяет, что документ JSON имеет форму, описанную схемой: правильные типы, обязательные свойства, значения в пределах ограничений и никаких лишних ключей. Этот валидатор поддерживает drafts 2020-12, 2019-09, 7, 6 и 4, проходит 1652 случая официального набора тестов и указывает на каждое ошибочное значение по пути и номеру строки.
Эта страница переведена машинным способом с английского оригинала. Перевод ещё не проверен человеком, поэтому ориентируйтесь на английскую версию. Читать английский оригинал
Вставьте схему в панель Схема, а JSON — в панель Данные, или нажмите Попробовать пример.
Посмотрите результат: Валидно или список ошибок, у каждой — путь к значению и описание проблемы.
Нажмите на ошибку, чтобы поставить курсор на это значение в панели Данные, исправьте его, и список обновится прямо во время ввода.
Включите Проверять форматы, чтобы также проверить email, дату и время, URI и другие распространённые форматы.
JSON Schema — стандартный способ описать, как выглядит корректный JSON; его используют OpenAPI, конструкторы форм, файлы конфигурации и конвейеры данных. Вставьте схему и документ, и результат обновляется во время ввода.
Что проверяется. Каждое утверждение словаря валидации: type, enum, const, числовые ограничения и multipleOf, длина строки и pattern, длина массива, uniqueItems, contains, размер объекта, required, dependentRequired, а также аппликаторы properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not и if/then/else. Ссылки $ref разрешаются через JSON-указатели, $defs, definitions, $id и $anchor внутри схемы.
Какой draft. Draft берётся из $schema или считается 2020-12, если схема его не указывает; вы можете выбрать его вручную. Различия важны: в draft 7 items с массивом проверяет каждую позицию, а ключевые слова рядом с $ref игнорируются; в 2020-12 позиции перенесены в prefixItems, а $ref сочетается с соседними ключевыми словами.
Форматы. Начиная с 2019-09, format — это аннотация, а не проверка. Включите Проверять форматы, чтобы всё же проверить email, date-time, date, time, uri, uuid, ipv4, ipv6 и hostname, как ожидает большинство.
Ошибки, с которыми можно работать. Для каждой ошибки указаны путь к ошибочному значению, например /tags/1, его строка в панели Данные и нарушенное правило. Нажмите на ошибку, и курсор окажется на этом значении.
Чего он не делает. unevaluatedProperties, unevaluatedItems и $dynamicRef не вычисляются, а $ref на схему на другом сервере не загружается. Страница сообщает об этом всякий раз, когда схема использует что-либо из этого, а не пропускает данные молча.
Создание схемы. Вместо схемы вставьте образец, и по нему будет написана начальная схема, которую останется уточнить.
Валидатор проверен на официальном JSON-Schema-Test-Suite. Всё работает в вашем браузере; ничто из вставленного никуда не отправляется.
Вставьте схему в панель Схема, а документ JSON — в панель Данные. Результат появляется сразу: Валидно или список ошибок, в каждой указан путь к неверному значению, например /items/2/price, и нарушенное правило, например minimum 0. Исправьте данные или схему, и список обновится во время ввода.
Для новых схем используйте 2020-12: это текущая спецификация, и её использует OpenAPI 3.1. Draft 7 по-прежнему распространён в старых инструментах и библиотеках. Укажите версию в $schema, например https://json-schema.org/draft/2020-12/schema, потому что кортежи массивов, $ref и dependencies в разных версиях работают по-разному.
Если additionalProperties равно false, любое свойство, не перечисленное в properties и не подходящее под patternProperties, считается ошибкой. Тогда опечатка вроде emial вместо email обнаруживается, а не игнорируется. Свойства, добавленные через allOf в другой подсхеме, не учитываются, и это частая неожиданность; перечислите их в той же схеме.
Начиная с 2019-09, ключевое слово format по умолчанию лишь аннотация, поэтому валидаторы не обязаны его проверять. Включите здесь Проверять форматы, чтобы проверить email, date-time, date, time, uri, uuid, ipv4, ipv6 и hostname. В коде в таких библиотеках, как Ajv, проверку форматов тоже нужно включать отдельно.
required называет конкретные свойства, которые должны присутствовать, например id и email, а minProperties только считает их: minProperties 2 принимает любые два ключа. Свойство, указанное в properties, но не в required, необязательно, но если оно есть, оно всё равно должно соответствовать своей схеме.
Да. Переключитесь на Создать схему и вставьте образец в панель Данные: будет написана схема 2020-12, в которой у каждого свойства указан тип, а ключи, присутствующие во всех записях, отмечены как required. Образец не может показать ограничения, форматы или допустимые значения, поэтому добавьте minimum, format и enum вручную, прежде чем полагаться на схему.
Ставки и правила меняются; проверьте источник, прежде чем полагаться на цифру.
Всё ещё не получается? Задайте вопрос об инструменте «Валидатор JSON Schema» и ответить может любой, кто знает. Учётная запись не нужна.