Utilia

JSON Schema валидатор

Валидирајте JSON документ според JSON Schema во прелистувачот. Секоја грешка е наведена со патека на инстанцата, клучен збор и патека во шемата.

Како да валидирате JSON според шема

  1. Залепете ја вашата шема во JSON Schema и вашите податоци во JSON документ или изберете готов случај од Пример.
  2. Оставете Верзија (draft) на Автоматски ($schema) за да се користи верзијата именувана во $schema на шемата, или наметнете draft 4, 7, 2019-09 или 2020-12.
  3. Валидацијата се извршува додека пишувате; Валидирај ја извршува повторно. Форматирај ги двете ги вовлекува двата текста одново.
  4. Прочитајте го резултатот: зелен ред кога документот е валиден, во спротивно табела со грешки.

Читање на табелата со грешки

Секој ред е едно неисполнето правило:

  • Патека на инстанцата е 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 секогаш се чуваат заедно со специфичните грешки на секоја гранка, бидејќи имаат смисла само заедно.

Што е поддржано

  • Верзии (drafts): 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/….

Која верзија (draft) да ја користам?

Користете ја онаа што ја таргетира вашиот проект и декларирајте ја со $schema. За нови шеми, 2020-12 е тековната верзија; ја користи и OpenAPI 3.1.

Зошто integer го одбива 2.0?

Не го одбива: JSON Schema го третира 2.0 како цел број бидејќи неговата вредност е цела. 2.5 не поминува "type": "integer".

Дали работи без интернет?

Да. Откако страницата ќе се вчита и ќе извршите прва валидација (која го вчитува валидаторот), не е потребна врска.