Согласовать объявление и draft
По умолчанию выбран 2020-12. Противоречащий ему $schema вызывает ошибку. Для кортежей draft-07 использует массив items, а 2020-12 — prefixItems. Переключение версии не преобразует существующие правила.
Проверка схемы и данных
Начните с примера. Проверка только схемы не читает данные; проверка экземпляра использует оба документа.
Данные и ссылки обрабатываются в этом браузере: ничего не отправляется на проверку и удалённые ссылки не загружаются.
Всё готово к ручной проверке.
Валидатор JSON Schema обнаруживает строку вместо ожидаемого целого числа, отсутствующий обязательный ключ и лишнее свойство. Корректный синтаксис JSON ещё не означает соблюдения контракта API. Сравните полученный ответ с правилами, прежде чем менять принимающий его код.
Проверка JSON по схеме различает отсутствие ключа и значение null. Она не вставляет default и не превращает строку с цифрами в число: вывод относится к тем данным, которые вы действительно передали.
Валидатор JSON Schema показывает путь экземпляра рядом с путём схемы. /users/0/age указывает на неверный тип значения, а required может указывать на родительский объект. Тогда имя отсутствующего свойства нужно искать в параметрах ошибки.
Импортируйте зависимости, сохранив их отдельными файлами. Каждый файл регистрируется по абсолютному $id. Относительные ссылки разрешаются от базового URI; имя файла служит только подписью и не подменяет идентификатор.
По умолчанию выбран 2020-12. Противоречащий ему $schema вызывает ошибку. Для кортежей draft-07 использует массив items, а 2020-12 — prefixItems. Переключение версии не преобразует существующие правила.
Отдельная проверка разбирает, проверяет по метасхеме и компилирует корень и все импортированные зависимости. Поле данных не читается. Каждому файлу ссылок нужен уникальный абсолютный $id без фрагмента; отсутствующая цель останавливает компиляцию.
Ctrl/Cmd+Enter запускает ручную проверку. Изменение данных, параметров или ссылок отменяет старую задачу и блокирует экспорт. Пример, очистка и удаление ссылки требуют предпросмотра и применения; отмена изменения восстанавливает прежние данные и отчёт.
Валидатор JSON Schema использует Ajv для draft-07, 2019-09 и 2020-12. Условия и комбинации трактуются по выбранной версии. Неизвестные ключевые слова вызывают ошибку компиляции, чтобы опечатка не превратила ограничение в незаметно пропущенную проверку.
Валидация JSON Schema изначально не применяет format. Включение активирует проверки ajv-formats для email, date-time, URI, UUID и других форматов; неизвестное имя блокирует компиляцию. Независимое правило pattern действует при обоих положениях переключателя.
Проверка JSON Schema онлайн различает синтаксис, метасхему, неразрешённые ссылки и нарушения экземпляра. Экспортировать можно только завершённый отчёт. Интерфейс переведён, а технические пояснения движка сохранены на английском языке.
Движок завершает проверку раньше, когда это возможно, но комбинация может вернуть несколько ошибок ветвей. Сопоставляйте instancePath, schemaPath, keyword и параметры. Список раскрывается по 50 записей; файл JSON содержит весь принятый отчёт.
Проверка синтаксиса определяет, можно ли прочитать текст как JSON. Схема дополнительно требует нужных типов, обязательных свойств и других ограничений. Поэтому корректная JSON-строка может нарушить правило, ожидающее целое число.
Они проверяются по переданным правилам. Для массива задайте type: array и items; для допуска null включите его в разрешённые типы. required требует присутствия ключа, но сам по себе не запрещает значение null.
Доступны draft-07, 2019-09 и 2020-12; начальный выбор — 2020-12. Объявление $schema должно совпадать с выбором. Старые и пользовательские диалекты не принимаются как будто они автоматически совместимы.
allOf требует выполнения всех ветвей, anyOf — хотя бы одной, oneOf — ровно одной. Если условия двух ветвей oneOf перекрываются и обе подходят, проверка не пройдёт. Посмотрите ошибки ветвей вместе с итоговой ошибкой комбинации.
Можно сослаться на определение внутри документа или импортировать отдельный файл с подходящим абсолютным $id. Относительная ссылка разрешается от базового URI. Сетевых загрузок нет; неизвестная цель приводит к ошибке компиляции.
Есть случай, который стоит проверить?
Валидатор JSON Schema помогает сравнить принятые и отклонённые примеры. Сохраните выбранный draft и настройку format рядом с отчётом, чтобы объяснять различия между средами.