Validatur tal-JSON Schema
Ivvalida dokument JSON kontra JSON Schema fil-brawżer tiegħek. Kull żball jiġi elenkat bil-path tal-istanza, il-keyword u l-path tal-iskema tiegħu.
| # | Path tal-istanza | Keyword | Messaġġ | Path tal-iskema |
|---|
Kif tivvalida JSON kontra skema
- Waħħal l-iskema tiegħek f’JSON Schema u d-data tiegħek f’Dokument JSON, jew agħżel każ lest minn Eżempju.
- Ħalli Draft fuq Awtomatiku ($schema) biex tuża l-verżjoni msemmija mill-
$schematal-iskema, jew ġġiegħel draft 4, 7, 2019-09 jew 2020-12. - Il-validazzjoni taħdem waqt li tikteb; Ivvalida iħaddimha mill-ġdid. Ifformatja t-tnejn jerġa’ jindenta ż-żewġ testi.
- Aqra r-riżultat: linja ħadra meta d-dokument huwa validu, inkella tabella ta’ żbalji.
Kif taqra t-tabella tal-iżbalji
Kull ringiela hija regola waħda li falliet:
- Path tal-istanza huwa JSON Pointer lejn il-valur li falla.
/roles/1huwa t-tieni oġġett ta’roles; (għerq) huwa d-dokument kollu. - Keyword hija r-regola tal-iskema li falliet:
type,required,minimum,pattern,format,additionalPropertiesu l-bqija. - Messaġġ jispjega l-falliment, pereżempju
0 is less than 1. - Path tal-iskema jindika l-keyword ġewwa l-iskema, bħal
/properties/id/minimum, biex issib ir-regola malajr.
Il-validazzjoni ma tieqafx fl-ewwel problema: l-iżbalji kollha jiġu elenkati. Meta proprjetà ta’ oġġett tfalli, il-validatur jirrapporta sommarju (“Property “id” does not match schema”) segwit mir-raġuni preċiża. Uri biss l-iżbalji l-aktar speċifiċi jaħbi dawk is-sommarji; neħħi l-marka biex tara l-katina sħiħa. L-iżbalji taħt anyOf u oneOf dejjem jinżammu flimkien mal-iżbalji speċifiċi ta’ kull fergħa, għax ma jagħmlux sens ħlief flimkien.
X’huwa appoġġjat
- Drafts: 4, 6 (ivvalidat bir-regoli tad-draft 7), 7, 2019-09 u 2020-12, inklużi
$defs/definitions,$reflokali,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesuunevaluatedItems. - Formats:
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerurelative-json-pointerjiġu ċċekkjati. Formats mhux magħrufa jiġu injorati, kif tippermetti l-ispeċifikazzjoni. - Referenzi:
$refjista’ jindika kullimkien ġewwa l-iskema, inkluż lejn$idli hi tiddikjara. Skemi mill-bogħod qatt ma jitniżżlu; referenza għal URL ieħor tiġi rrapportata bħala mhux solvuta.
Din l-għodda tivvalida dokumenti kontra l-iskema tiegħek. Ma tiċċekkjax li l-iskema nnifisha issegwi l-meta-skema, imma twissik dwar ismijiet ta’ type mhux magħrufa bħal "strin" jew "int", żball tipiku li l-validaturi inkella jinjoraw bil-kwiet.
L-eżempji
- Profil tal-utent (2020-12):
required, tulijiet ta’ strings,format: email,enumġewwaitems,uniqueItemsuadditionalProperties: false. - Lista ta’ prodotti b’$ref (draft-07): array li l-oġġetti tiegħu jirreferu għal
#/definitions/product, b’patterngħall-SKU u prezz b’exclusiveMinimum. - Konfigurazzjoni b’if/then (2019-09): ċertifikat meħtieġ biss fil-modalità HTTPS,
oneOfbejn email u URI, u limiti numeriċi.
Kull eżempju jiġi b’dokument li fih żbalji deliberati, biex tkun tista’ tara kif jidhru l-iżbalji.
Il-messaġġi tal-iżbalji mill-validatur huma bl-Ingliż.
Mistoqsijiet frekwenti
Id-data tiegħi tittella’?
Le. L-iskema u d-dokument jiġu vvalidati fil-brawżer tiegħek; xejn ma jintbagħat lil server.
Għaliex il-$ref tal-iskema tiegħi huwa “mhux solvut”?
Il-validatur jaf biss l-iskema li waħħalt. $ref lejn fajl jew URL ieħor ma jistax jiġi segwit; ikkopja d-definizzjonijiet referenzjati f’$defs u indika #/$defs/… minflok.
Liema draft għandi nuża?
Uża dak li jimmira lejh il-proġett tiegħek, u iddikjarah b’$schema. Għal skemi ġodda, 2020-12 hija l-verżjoni kurrenti; l-OpenAPI 3.1 juża wkoll din.
Għaliex integer jirrifjuta 2.0?
Ma jirrifjutax: JSON Schema jittratta 2.0 bħala integer għax il-valur tiegħu huwa sħiħ. 2.5 jfalli "type": "integer".
Jaħdem offline?
Iva. Malli titella’ l-paġna u tħaddem l-ewwel validazzjoni (li tgħabbi l-validatur), ma tinħtieġ ebda konnessjoni.
Għodod relatati
- Formatter u validatur tal-JSON Formatter u validatur tal-JSON b’xejn li jibbewtifika, jimminimizza u jiċċekkja l-JSON fil-brawżer tiegħek, b’żbalji tas-sintassi bil-linja u l-kolonna.
- Ittestjar tal-JSONPath Ittestja espressjonijiet JSONPath fuq il-JSON tiegħek stess fil-brawżer. Filtri, slices, nżul rikorsiv, paths u JSON Pointers, b’eżempji lesti.
- Konvertitur JSON għal YAML Ikkonverti JSON għal YAML u YAML għal JSON fil-brawżer tiegħek, b’anchors, merge keys u fajls ta’ diversi dokumenti appoġġjati. Xejn ma jittella’.