JSON Schema tikrintuvas
Patikrink JSON dokumentą pagal JSON Schema naršyklėje. Kiekviena klaida išvardyta su egzemplioriaus keliu, raktažodžiu ir schemos keliu.
| # | Egzemplioriaus kelias | Raktažodis | Pranešimas | Schemos kelias |
|---|
Kaip tikrinti JSON pagal schemą
- Įklijuok schemą į JSON Schema, o duomenis – į JSON dokumentas, arba pasirink paruoštą atvejį iš Pavyzdys.
- Palik Versija ties Automatiškai ($schema), kad būtų naudojama schemos
$schemanurodyta versija, arba priverstinai pasirink draft 4, 7, 2019-09 ar 2020-12. - Tikrinimas vyksta tau rašant; Tikrinti paleidžia jį iš naujo. Formatuoti abu pertvarko abiejų tekstų įtrauką.
- Perskaityk rezultatą: žalia eilutė, kai dokumentas tinkamas, kitu atveju – klaidų lentelė.
Klaidų pranešimus sukuria pats tikrintuvas, ir jie pateikiami anglų kalba. Lentelės stulpelių pavadinimai ir kita sąsaja yra lietuviški.
Klaidų lentelės skaitymas
Kiekviena eilutė yra viena nepavykusi taisyklė:
- Egzemplioriaus kelias yra JSON Pointer į reikšmę, kuri netiko.
/roles/1yra antrasroleselementas; (šaknis) yra visas dokumentas. - Raktažodis yra schemos taisyklė, kuri nepavyko:
type,required,minimum,pattern,format,additionalPropertiesir pan. - Pranešimas paaiškina nesėkmę, pavyzdžiui,
0 is less than 1. - Schemos kelias nurodo raktažodį schemos viduje, pavyzdžiui,
/properties/id/minimum, kad taisyklę greitai rastum.
Tikrinimas nesustoja ties pirma problema: išvardijamos visos klaidos. Kai objekto savybė netinka, tikrintuvas praneša santrauką („Property “id” does not match schema“), o po jos – tikslią priežastį. Rodyti tik tiksliausias klaidas paslepia tas santraukas; atžymėk, kad pamatytum visą grandinę. Klaidos po anyOf ir oneOf visada paliekamos kartu su kiekvienos šakos tikslesnėmis klaidomis, nes jos prasmingos tik kartu.
Kas palaikoma
- Versijos: 4, 6 (tikrinama pagal draft 7 taisykles), 7, 2019-09 ir 2020-12, įskaitant
$defs/definitions, vietinį$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesirunevaluatedItems. - Formatai: tikrinami
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerirrelative-json-pointer. Nežinomi formatai ignoruojami, kaip leidžia specifikacija. - Nuorodos:
$refgali rodyti bet kur schemos viduje, įskaitant jos deklaruojamą$id. Nuotolinės schemos niekada neatsisiunčiamos; nuoroda į kitą URL pranešama kaip neišspręsta.
Šis įrankis tikrina dokumentus pagal tavo schemą. Jis netikrina, ar pati schema atitinka metaschemą, bet įspėja apie nežinomus type pavadinimus, pavyzdžiui, "strin" ar "int", – dažną rašybos klaidą, kurią kiti tikrintuvai tyliai ignoruoja.
Pavyzdžiai
- Naudotojo profilis (2020-12):
required, eilučių ilgiai,format: email,enumelementuose,uniqueItemsiradditionalProperties: false. - Produktų sąrašas su $ref (draft-07): masyvas, kurio elementai nurodo
#/definitions/product, su SKUpatternirexclusiveMinimumkaina. - Konfigūracija su if/then (2019-09): sertifikatas reikalingas tik HTTPS režimu,
oneOftarp el. pašto ir URI bei skaitinės ribos.
Prie kiekvieno pavyzdžio pateikiamas dokumentas su sąmoningomis klaidomis, kad matytum, kaip atrodo klaidos.
Dažnai užduodami klausimai
Ar mano duomenys įkeliami?
Ne. Schema ir dokumentas tikrinami tavo naršyklėje; į serverį nieko nesiunčiama.
Kodėl mano schemos $ref „neišspręstas“?
Tikrintuvas žino tik tavo įklijuotą schemą. $ref į kitą failą ar URL sekti negalima; nukopijuok nurodomus apibrėžimus į $defs ir nurodyk #/$defs/….
Kurią versiją naudoti?
Naudok tą, kurią taiko tavo projektas, ir deklaruok ją su $schema. Naujoms schemoms 2020-12 yra dabartinė versija; ją naudoja ir OpenAPI 3.1.
Kodėl integer atmeta 2.0?
Neatmeta: JSON Schema 2.0 laiko sveikuoju skaičiumi, nes jo reikšmė sveika. 2.5 neatitinka "type": "integer".
Ar veikia be interneto?
Taip. Kai puslapis įkeltas ir atlikai pirmą tikrinimą (kurio metu įkeliamas tikrintuvas), ryšio nebereikia.
Susiję įrankiai
- JSON formatuotojas ir tikrintuvas Nemokamas JSON formatuotojas ir tikrintuvas, kuris naršyklėje sutvarko, minimizuoja ir tikrina JSON, o sintaksės klaidas nurodo su eilute ir stulpeliu.
- JSONPath testuotojas Išbandyk JSONPath išraiškas su savo JSON naršyklėje. Filtrai, iškarpos, rekursinis nusileidimas, keliai ir JSON Pointer su paruoštais pavyzdžiais.
- JSON į YAML keitiklis Konvertuok JSON į YAML ir YAML į JSON naršyklėje, su palaikomais inkarais, sujungimo raktais ir kelių dokumentų failais. Nieko neįkeliama.