Перейти к содержанию

Валидатор схемы JSON

Сравните документ JSON со схемой JSON и получите читаемый построчный отчет об ошибках.

Входные данные
Схема JSON
Выходные данные

Валидатор схемы JSON

Вставьте документ JSON с одной стороны и схему JSON с другой, и этот инструмент сообщит вам, соответствует ли документ, а если нет, то где именно и почему. О каждой проблеме сообщается в виде одной строки с путем указателя JSON к проблемному значению, ключевому слову схемы, в котором произошел сбой, и фактическому значению, найденному там, поэтому вы можете сразу перейти к исправлению, а не искать вручную большую полезную нагрузку.

Валидатор охватывает повседневное ядро проекта схемы JSON-07: "тип" (включая массивы объединений, такие как ["строка","null"] для полей, допускающих значение NULL), "обязательные" и "свойства", "дополнительные свойства" как логические значения или собственную схему, "элементы" для проверки списка и кортежа, "minItems"/"maxItems"/"uniqueItems", числовые ключевые слова. "minimum"/"maximum"/"exclusiveMinimum"/"exclusiveMaximum"/"multipleOf", строковые ключевые слова "minLength"/"maxLength"/"pattern", "enum" и "const", а также комбинаторы "anyOf"/"allOf"/"oneOf"/"not". Он также разрешает указатели «$ref» на собственный раздел схемы «#/definitions» или «#/$defs» — что удобно для схем, которые учитывают форму общего объекта — и обнаруживает «$ref», который зацикливается на самом себе, а не замораживает страницу.

Это валидатор, а не построитель форм на основе схемы: он не извлекает схему из URL-адреса или «$id» и никогда не будет этого делать, поскольку это означало бы отправку ваших данных или определения схемы с вашего устройства. Любая ссылка «$ref», указывающая за пределы документа, считается неподдерживаемой, а не игнорируется молча, поэтому вы всегда точно знаете, что было проверено, а что не было проверено.

Все работает локально в вашем браузере — документ JSON и схема анализируются и проверяются на вашем устройстве и никогда никуда не загружаются, что делает его безопасным для использования с полезными нагрузками API, файлами конфигурации или любым другим JSON, который включает данные, которые вы не хотели бы вставлять на случайный веб-сайт.

FAQ

Какой проект схемы JSON это поддерживает?
Практическое подмножество Draft-07: тип (включая объединение и массивы, допускающие значение NULL), требуемые свойства, дополнительные свойства, элементы, minItems/maxItems/uniqueItems, ключевые слова числовых и строковых границ, enum/const, AnyOf/allOf/oneOf/not и локальные указатели $ref в "#/definitions" или "#/$defs".
Может ли он следовать по $ref к другому файлу или URL-адресу?
Нет. Разрешаются только локальные указатели на собственные "#/definitions" или "#/$defs" той же схемы. $ref, указывающий куда-либо еще, считается неподдерживаемым, а не полученным, поскольку получение удаленной схемы означало бы отправку данных с вашего устройства.
Что произойдет, если в моей схеме будет циклический $ref?
Это обнаруживается и сообщается об ошибке «$ref» вместо фиксации вкладки — валидатор отслеживает ссылки, по которым он в данный момент следует, и останавливается, как только одна из них повторяется.
Как сообщается о каждой ошибке?
Одна строка на каждую проблему с указанием пути указателя JSON к значению (например, «/user/age»), ключевому слову схемы, которое не удалось выполнить (например, «минимум» или «требуется»), и фактическому значению, которое там было найдено.
Загружен ли где-нибудь мой документ и схема JSON?
Нет. Проверка выполняется полностью в вашем браузере с использованием встроенного анализатора JSON — ни данные, ни схема никогда не покидают ваше устройство, и никакая схема никогда не извлекается из сети.