JSON Schema validator
Proveri JSON dokument prema JSON šemi u pregledaču. Svaka greška se navodi sa putanjom instance, ključnom rečju i putanjom u šemi.
| # | Putanja instance | Ključna reč | Poruka | Putanja u šemi |
|---|
Kako da proveriš JSON prema šemi
- Nalepi šemu u JSON Schema i podatke u JSON dokument ili izaberi gotov slučaj iz Primer.
- Ostavi Verzija (draft) na Automatski ($schema) da se koristi verzija koju navodi
$schemau šemi, ili izaberi draft 4, 7, 2019-09 ili 2020-12. - Provera se izvršava dok kucaš; Proveri je pokreće ponovo. Formatiraj oba ponovo uvlači oba teksta.
- Pročitaj rezultat: zelen red kad je dokument ispravan, a inače tabelu grešaka.
Poruke o greškama koje vraća sam validator su na engleskom jeziku, dok je ostatak stranice na srpskom.
Kako se čita tabela grešaka
Svaki red je jedno pravilo koje nije ispunjeno:
- Putanja instance je JSON Pointer do vrednosti koja nije prošla proveru.
/roles/1je druga stavka uroles; (koren) je ceo dokument. - Ključna reč je pravilo šeme koje nije ispunjeno:
type,required,minimum,pattern,format,additionalPropertiesi tako dalje. - Poruka objašnjava grešku, na primer
0 is less than 1. - Putanja u šemi pokazuje ključnu reč unutar šeme, poput
/properties/id/minimum, pa pravilo brzo pronalaziš.
Provera se ne zaustavlja na prvom problemu: navode se sve greške. Kad svojstvo objekta ne prođe proveru, validator prijavljuje rezime („Property “id” does not match schema“), a zatim tačan razlog. Prikaži samo najpreciznije greške skriva te rezimee; ukloni oznaku da vidiš ceo lanac. Greške unutar anyOf i oneOf uvek se čuvaju zajedno sa preciznim greškama svake grane, jer imaju smisla samo zajedno.
Šta je podržano
- Verzije (drafts): 4, 6 (proverava se pravilima drafta 7), 7, 2019-09 i 2020-12, uključujući
$defs/definitions, lokalni$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesiunevaluatedItems. - Formati: proveravaju se
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerirelative-json-pointer. Nepoznati formati se ignorišu, kako specifikacija dozvoljava. - Reference:
$refmože da pokazuje bilo gde unutar šeme, uključujući na$idkoji ona deklariše. Udaljene šeme se nikada ne preuzimaju; referenca na drugi URL prijavljuje se kao nerazrešena.
Ovaj alat proverava dokumente prema tvojoj šemi. Ne proverava da li sama šema prati meta-šemu, ali upozorava na nepoznate nazive type, poput "strin" ili "int", što je čest previd koji validatori inače tiho ignorišu.
Primeri
- Profil korisnika (2020-12):
required, dužine stringova,format: email,enumunutaritems,uniqueItemsiadditionalProperties: false. - Lista proizvoda sa $ref (draft-07): niz čije stavke upućuju na
#/definitions/product, sapatternza SKU i cenom saexclusiveMinimum. - Konfiguracija sa if/then (2019-09): sertifikat koji se zahteva samo u HTTPS režimu,
oneOfizmeđu e-pošte i URI-ja i numerička ograničenja.
Uz svaki primer ide dokument sa namernim greškama, pa možeš da vidiš kako greške izgledaju.
Česta pitanja
Da li se moji podaci otpremaju?
Ne. Šema i dokument se proveravaju u tvom pregledaču; ništa se ne šalje serveru.
Zašto je $ref u mojoj šemi „nerazrešen“?
Validator zna samo šemu koju si nalepio. $ref na drugi fajl ili URL ne može da se prati; kopiraj referencirane definicije u $defs i umesto toga upućuj na #/$defs/….
Koji draft da koristim?
Koristi onaj koji tvoj projekat cilja i deklariši ga pomoću $schema. Za nove šeme, 2020-12 je aktuelna verzija; koristi je i OpenAPI 3.1.
Zašto integer odbija 2.0?
Ne odbija: JSON Schema tretira 2.0 kao ceo broj jer je njegova vrednost cela. 2.5 ne prolazi "type": "integer".
Da li radi bez interneta?
Da. Kad se stranica učita i izvršiš prvu proveru (koja učitava validator), veza više nije potrebna.
Srodni alati
- JSON formater i validator Besplatan JSON formater i validator koji sređuje, minifikuje i proverava JSON u pregledaču, sa sintaksnim greškama prijavljenim po redu i koloni.
- JSONPath tester Testiraj JSONPath izraze na sopstvenom JSON-u u pregledaču. Filteri, isečci, rekurzivno spuštanje, putanje i JSON Pointeri, uz gotove primere.
- JSON u YAML pretvarač Pretvori JSON u YAML i YAML u JSON u pregledaču, uz podršku za sidra, ključeve spajanja i fajlove sa više dokumenata. Ništa se ne otprema.