JSON Schema -validaattori
Validoi JSON-dokumentti JSON Schemaa vastaan selaimessa. Jokainen virhe luetellaan instanssipolkuineen, avainsanoineen ja skeeman polkuineen.
| # | Instanssipolku | Avainsana | Viesti | Skeeman polku |
|---|
Näin validoit JSONin skeemaa vastaan
- Liitä skeemasi kenttään JSON Schema ja datasi kenttään JSON-dokumentti tai valitse valmis tapaus kohdasta Esimerkki.
- Jätä Versio arvoon Automaattinen ($schema) käyttääksesi skeeman
$schema-arvon nimeämää versiota tai pakota draft 4, 7, 2019-09 tai 2020-12. - Validointi ajetaan kirjoittaessasi, ja Validoi ajaa sen uudelleen. Muotoile molemmat sisentää kaksi tekstiä uudelleen.
- Lue tulos: vihreä rivi, kun dokumentti on kelvollinen, muuten virhetaulukko.
Validaattorin virheilmoitukset ovat englanniksi. Muu käyttöliittymä on suomeksi, mutta itse sääntöjen rikkomista kuvaavat viestit tulevat kirjastolta englanninkielisinä.
Virhetaulukon lukeminen
Jokainen rivi on yksi epäonnistunut sääntö:
- Instanssipolku on JSON Pointer arvoon, joka epäonnistui.
/roles/1onroles-taulukon toinen alkio ja(juuri)on koko dokumentti. - Avainsana on skeeman sääntö, joka epäonnistui:
type,required,minimum,pattern,format,additionalPropertiesja niin edelleen. - Viesti selittää epäonnistumisen, esimerkiksi
0 is less than 1. - Skeeman polku osoittaa avainsanaan skeeman sisällä, kuten
/properties/id/minimum, jotta löydät säännön nopeasti.
Validointi ei pysähdy ensimmäiseen ongelmaan: kaikki virheet luetellaan. Kun olion ominaisuus epäonnistuu, validaattori raportoi yhteenvedon (”Property “id” does not match schema”) ja sen perään tarkan syyn. Näytä vain tarkimmat virheet piilottaa nämä yhteenvedot. Poista valinta nähdäksesi koko ketjun. Virheet anyOf- ja oneOf-ehtojen alla säilytetään aina yhdessä kunkin haaran tarkkojen virheiden kanssa, koska ne ovat mielekkäitä vain yhdessä.
Mitä tuetaan
- Versiot: 4, 6 (validoidaan draft 7 -säännöillä), 7, 2019-09 ja 2020-12, mukaan lukien
$defs/definitions, paikallinen$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesjaunevaluatedItems. - Formaatit:
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerjarelative-json-pointertarkistetaan. Tuntemattomat formaatit ohitetaan, kuten määritys sallii. - Viittaukset:
$refvoi osoittaa mihin tahansa skeeman sisällä, myös sen itse määrittelemään$id-arvoon. Etäskeemoja ei koskaan ladata: viittaus toiseen URL-osoitteeseen raportoidaan ratkaisemattomana.
Tämä työkalu validoi dokumentteja skeemaasi vasten. Se ei tarkista, että itse skeema noudattaa metaskeemaa, mutta se varoittaa tuntemattomista type-nimistä, kuten "strin" tai "int", jotka ovat yleinen kirjoitusvirhe, jonka validaattorit muuten ohittavat hiljaa.
Esimerkit
- Käyttäjäprofiili (2020-12):
required, merkkijonojen pituudet,format: email,enumitems-kohdan sisällä,uniqueItemsjaadditionalProperties: false. - Tuoteluettelo $ref-viittauksella (draft-07): taulukko, jonka alkiot viittaavat kohtaan
#/definitions/product, SKU:npatternjaexclusiveMinimum-hinta. - Asetukset if/then-ehdolla (2019-09): varmenne vaaditaan vain HTTPS-tilassa,
oneOfsähköpostin ja URI:n välillä sekä lukuarvojen rajat.
Jokaiseen esimerkkiin kuuluu dokumentti, jossa on tahallisia virheitä, jotta näet, miltä virheet näyttävät.
Usein kysytyt kysymykset
Lähetetäänkö tietoni palvelimelle?
Ei. Skeema ja dokumentti validoidaan selaimessasi, eikä mitään lähetetä palvelimelle.
Miksi skeemani $ref on ”ratkaisematon”?
Validaattori tuntee vain liittämäsi skeeman. $ref-viittausta toiseen tiedostoon tai URL-osoitteeseen ei voi seurata. Kopioi viitatut määritykset kohtaan $defs ja osoita sen sijaan kohtaan #/$defs/….
Mitä versiota minun pitäisi käyttää?
Käytä sitä, jota projektisi tavoittelee, ja ilmoita se $schema-arvolla. Uusille skeemoille 2020-12 on nykyinen versio, ja myös OpenAPI 3.1 käyttää sitä.
Miksi integer hylkää arvon 2.0?
Se ei hylkää: JSON Schema käsittelee arvon 2.0 kokonaislukuna, koska sen arvo on kokonainen. Arvo 2.5 ei läpäise ehtoa "type": "integer".
Toimiiko se ilman verkkoyhteyttä?
Kyllä. Kun sivu on latautunut ja olet ajanut ensimmäisen validoinnin (joka lataa validaattorin), yhteyttä ei tarvita.
Aiheeseen liittyvät työkalut
- JSON-muotoilija ja -validaattori Ilmainen JSON-muotoilija ja -validaattori, joka siistii, pienentää ja tarkistaa JSONin selaimessa ja ilmoittaa syntaksivirheet rivin ja sarakkeen kanssa.
- JSONPath-testeri Testaa JSONPath-lausekkeita omalla JSON-datallasi selaimessa. Suodattimet, viipaleet, rekursiivinen haku, polut ja JSON Pointerit sekä valmiit esimerkit.
- JSON–YAML-muunnin Muunna JSON YAML:ksi ja YAML JSONiksi selaimessa. Ankkurit, yhdistämisavaimet ja usean dokumentin tiedostot tuetaan. Mitään ei lähetetä palvelimelle.