Preverjevalnik sheme JSON Schema
Preveri dokument JSON glede na shemo JSON Schema v brskalniku. Vsaka napaka je navedena s potjo v dokumentu, ključno besedo in potjo v shemi.
| # | Pot v dokumentu | Ključna beseda | Sporočilo | Pot v shemi |
|---|
Kako preveriti JSON glede na shemo
- Prilepi shemo v JSON Schema in podatke v Dokument JSON ali izberi pripravljen primer v Primer.
- Pusti Različica (draft) na Samodejno ($schema), da se uporabi različica, ki jo poimenuje
$schemasheme, ali pa vsili draft 4, 7, 2019-09 ali 2020-12. - Preverjanje teče med tipkanjem; Preveri ga zažene znova. Oblikuj oboje ponovno zamakne obe besedili.
- Preberi rezultat: zelena vrstica, kadar je dokument veljaven, sicer tabela napak.
Branje tabele napak
Vsaka vrstica je eno neizpolnjeno pravilo:
- Pot v dokumentu je kazalec JSON Pointer na vrednost, ki ni uspela.
/roles/1je drugi elementroles;(koren)je celoten dokument. - Ključna beseda je pravilo sheme, ki ni uspelo:
type,required,minimum,pattern,format,additionalPropertiesin tako naprej. - Sporočilo pojasni neuspeh, na primer
0 is less than 1. - Pot v shemi kaže na ključno besedo znotraj sheme, kot je
/properties/id/minimum, tako da pravilo hitro najdeš.
Preverjanje se ne ustavi pri prvi težavi: navedene so vse napake. Ko lastnost objekta ne uspe, preverjevalnik javi povzetek (»Property “id” does not match schema«), ki mu sledi natančen razlog. Pokaži samo najbolj specifične napake skrije te povzetke; odznači jo, da vidiš celotno verigo. Napake pod anyOf in oneOf ostanejo vedno skupaj s specifičnimi napakami vsake veje, ker imajo smisel le skupaj.
Sporočila o napakah, ki jih ustvari preverjevalnik, so v angleščini.
Kaj je podprto
- Drafti: 4, 6 (preverjan s pravili drafta 7), 7, 2019-09 in 2020-12, vključno z
$defs/definitions, lokalnim$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesinunevaluatedItems. - Formati: preverjeni so
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerinrelative-json-pointer. Neznani formati so prezrti, kot dovoljuje specifikacija. - Sklici:
$reflahko kaže kamor koli znotraj sheme, tudi na$id, ki ga shema razglasi. Oddaljene sheme se nikoli ne prenesejo; sklic na drug URL je javljen kot nerazrešen.
To orodje preverja dokumente glede na tvojo shemo. Ne preverja, ali sama shema sledi metashemi, vendar opozori na neznana imena type, kot sta "strin" ali "int", pogosto tipkarsko napako, ki jo preverjevalniki sicer tiho prezrejo.
Primeri
- Profil uporabnika (2020-12):
required, dolžine nizov,format: email,enumznotrajitems,uniqueItemsinadditionalProperties: false. - Seznam izdelkov s $ref (draft-07): tabela, katere elementi se sklicujejo na
#/definitions/product, spatternza SKU in ceno zexclusiveMinimum. - Konfiguracija z if/then (2019-09): potrdilo, zahtevano samo v načinu HTTPS,
oneOfmed e-pošto in URI ter številske omejitve.
Vsak primer ima dokument z namernimi napakami, da vidiš, kako izgledajo napake.
Pogosta vprašanja
Ali se moji podatki naložijo na strežnik?
Ne. Shema in dokument se preverita v tvojem brskalniku; nič se ne pošlje na strežnik.
Zakaj je $ref moje sheme »nerazrešen«?
Preverjevalnik pozna samo shemo, ki si jo prilepil. Sklica na drugo datoteko ali URL ni mogoče slediti; kopiraj sklicane definicije v $defs in se namesto tega sklicuj na #/$defs/….
Katero različico (draft) naj uporabim?
Uporabi tisto, ki jo cilja tvoj projekt, in jo razglasi z $schema. Za nove sheme je trenutna različica 2020-12; uporablja jo tudi OpenAPI 3.1.
Zakaj integer zavrne 2.0?
Ne zavrne: JSON Schema šteje 2.0 za celo število, ker je njegova vrednost cela. 2.5 ne izpolni "type": "integer".
Ali deluje brez povezave?
Da. Ko se stran naloži in opraviš prvo preverjanje (ki naloži preverjevalnik), povezava ni več potrebna.
Sorodna orodja
- Oblikovalnik in preverjevalnik JSON Brezplačen oblikovalnik in preverjevalnik JSON, ki v brskalniku polepša, zmanjša in preveri JSON, sintaksne napake pa javi z vrstico in stolpcem.
- Preizkuševalnik JSONPath Preizkusi izraze JSONPath na svojem JSON v brskalniku. Filtri, rezine, rekurzivni spust, poti in kazalci JSON Pointer ter pripravljeni primeri.
- Pretvornik JSON v YAML Pretvori JSON v YAML in YAML v JSON v brskalniku s podporo za sidra, ključe združevanja in večdokumentne datoteke. Nič se ne naloži na strežnik.