JSON Schema валидатор
Валидирайте JSON документ спрямо JSON Schema във вашия браузър. Всяка грешка е изброена с пътя си в документа, ключовата дума и пътя в схемата.
| # | Път в документа | Ключова дума | Съобщение | Път в схемата |
|---|
Как да валидирате JSON спрямо схема
- Поставете схемата в JSON Schema и данните си в JSON документ или изберете готов случай от Пример.
- Оставете Версия на Автоматично ($schema), за да се използва версията, посочена в
$schemaна схемата, или задайте принудително draft 4, 7, 2019-09 или 2020-12. - Валидирането се изпълнява, докато пишете; Валидирай го изпълнява отново. Форматирай и двете преотстъпва двата текста.
- Прочетете резултата: зелен ред, когато документът е валиден, иначе таблица с грешки.
Съобщенията за грешки идват от библиотеката за валидиране и са на английски. Таблицата с пътищата и ключовите думи е същата на всички езици.
Как се чете таблицата с грешки
Всеки ред е едно нарушено правило:
- Път в документа е JSON Pointer към стойността, която не е минала проверката.
/roles/1е вторият елемент наroles;(корен)е целият документ. - Ключова дума е правилото на схемата, което е нарушено:
type,required,minimum,pattern,format,additionalPropertiesи така нататък. - Съобщение обяснява нарушението, например
0 is less than 1. - Път в схемата сочи ключовата дума вътре в схемата, например
/properties/id/minimum, за да намерите бързо правилото.
Валидирането не спира при първия проблем: всички грешки са изброени. Когато свойство на обект не мине, валидаторът съобщава обобщение („Property “id” does not match schema“), следвано от точната причина. Покажи само най-конкретните грешки скрива тези обобщения; махнете отметката, за да видите цялата верига. Грешките под anyOf и oneOf винаги се пазят заедно с конкретните грешки на всеки клон, защото имат смисъл само заедно.
Какво се поддържа
- Версии: 4, 6 (валидира се с правилата на draft 7), 7, 2019-09 и 2020-12, включително
$defs/definitions, локален$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesиunevaluatedItems. - Формати: проверяват се
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerиrelative-json-pointer. Непознатите формати се игнорират, както позволява спецификацията. - Препратки:
$refможе да сочи навсякъде в схемата, включително към$id, който тя декларира. Отдалечени схеми никога не се изтеглят; препратка към друг URL се съобщава като неразрешена.
Този инструмент валидира документи спрямо вашата схема. Не проверява дали самата схема следва метасхемата, но предупреждава за непознати имена на type като "strin" или "int" – честа грешка при писане, която валидаторите иначе игнорират мълчаливо.
Примерите
- Потребителски профил (2020-12):
required, дължини на низове,format: email,enumвътре вitems,uniqueItemsиadditionalProperties: false. - Списък с продукти с $ref (draft-07): масив, чиито елементи сочат към
#/definitions/product, сpatternза SKU и цена сexclusiveMinimum. - Конфигурация с if/then (2019-09): сертификат, задължителен само в режим HTTPS,
oneOfмежду имейл и URI и числови ограничения.
Всеки пример идва с документ с умишлени грешки, за да видите как изглеждат те.
Често задавани въпроси
Качват ли се данните ми?
Не. Схемата и документът се валидират във вашия браузър; нищо не се изпраща към сървър.
Защо `$ref` на схемата ми е „неразрешен“?
Валидаторът познава само схемата, която сте поставили. $ref към друг файл или URL не може да се следва; копирайте препратените дефиниции в $defs и сочете към #/$defs/….
Коя версия да използвам?
Тази, която целите в проекта си, и я декларирайте с $schema. За нови схеми 2020-12 е сегашната версия; OpenAPI 3.1 също я използва.
Защо integer отхвърля 2.0?
Не го отхвърля: JSON Schema третира 2.0 като цяло число, защото стойността му е цяла. 2.5 не минава през "type": "integer".
Работи ли офлайн?
Да. След като страницата се е заредила и сте изпълнили първо валидиране (което зарежда валидатора), не е нужна връзка.
Сродни инструменти
- JSON форматиране и валидиране Безплатно форматиране и валидиране на JSON, което подрежда, минимизира и проверява JSON във вашия браузър, със синтактични грешки по ред и колона.
- JSONPath тестер Тествайте JSONPath изрази върху вашия JSON във вашия браузър. Филтри, срезове, рекурсивно търсене, пътища и JSON Pointer, с готови примери.
- Конвертор от JSON в YAML Конвертирайте JSON в YAML и YAML в JSON във вашия браузър, с котви, merge ключове и файлове с много документи. Нищо не се качва.