Vlerësuesi i JSON Schema
Vlerëso një dokument JSON kundrejt një JSON Schema në shfletuesin tënd. Çdo gabim listohet me shtegun e instancës, fjalën kyçe dhe shtegun e skemës.
| # | Shtegu i instancës | Fjala kyçe | Mesazhi | Shtegu i skemës |
|---|
Si ta vlerësosh JSON-in kundrejt një skeme
- Ngjit skemën te JSON Schema dhe të dhënat te Dokumenti JSON, ose zgjidh një rast të gatshëm nga Shembull.
- Lëre Draftin te Automatik ($schema) për të përdorur versionin e emërtuar nga
$schemae skemës, ose detyro draftin 4, 7, 2019-09 ose 2020-12. - Vlerësimi ekzekutohet ndërsa shkruan; Vlerëso e ekzekuton përsëri. Formato të dyja i riformaton të dy tekstet me shtyrje.
- Lexo rezultatin: një rresht i gjelbër kur dokumenti është i vlefshëm, përndryshe një tabelë gabimesh.
Leximi i tabelës së gabimeve
Çdo rresht është një rregull që dështoi:
- Shtegu i instancës është një JSON Pointer drejt vlerës që dështoi.
/roles/1është elementi i dytë iroles;(rrënja)është i gjithë dokumenti. - Fjala kyçe është rregulli i skemës që dështoi:
type,required,minimum,pattern,format,additionalPropertiese kështu me radhë. - Mesazhi shpjegon dështimin, për shembull
0 is less than 1.Mesazhet e gabimit nga vlerësuesi janë në anglisht. - Shtegu i skemës drejton te fjala kyçe brenda skemës, si
/properties/id/minimum, që ta gjesh shpejt rregullin.
Vlerësimi nuk ndalon te problemi i parë: listohen të gjitha gabimet. Kur dështon një veti objekti, vlerësuesi raporton një përmbledhje (“Property “id” does not match schema”) të ndjekur nga arsyeja e saktë. Shfaq vetëm gabimet më specifike i fsheh ato përmbledhje; hiq shenjën për të parë zinxhirin e plotë. Gabimet nën anyOf dhe oneOf mbahen gjithmonë së bashku me gabimet specifike të secilës degë, sepse kanë kuptim vetëm bashkë.
Çfarë mbështetet
- Draftet: 4, 6 (vlerësuar me rregullat e draftit 7), 7, 2019-09 dhe 2020-12, përfshirë
$defs/definitions,$reflokal,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesdheunevaluatedItems. - Formatet: kontrollohen
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerdherelative-json-pointer. Formatet e panjohura injorohen, siç e lejon specifikimi. - Referencat:
$refmund të drejtojë kudo brenda skemës, përfshirë një$idqë ajo deklaron. Skemat e largëta nuk shkarkohen kurrë; një referencë te një URL tjetër raportohet si e pazgjidhur.
Ky mjet vlerëson dokumentet kundrejt skemës sate. Nuk kontrollon nëse vetë skema ndjek meta-skemën, por paralajmëron për emra tipesh të panjohur si "strin" ose "int", një gabim shtypi i zakonshëm që vlerësuesit përndryshe e injorojnë në heshtje.
Shembujt
- Profili i përdoruesit (2020-12):
required, gjatësi vargjesh,format: email, njëenumbrendaitems,uniqueItemsdheadditionalProperties: false. - Lista e produkteve me $ref (draft-07): një varg elementet e të cilit referojnë
#/definitions/product, me njëpatternpër SKU dhe një çmimexclusiveMinimum. - Konfigurim me if/then (2019-09): një certifikatë e kërkuar vetëm në modalitetin HTTPS, një
oneOfmes email-it dhe URI-t, dhe kufij numerikë.
Çdo shembull vjen me një dokument që përmban gabime të qëllimshme, që të shohësh si duken gabimet.
Pyetje të shpeshta
A ngarkohen të dhënat e mia?
Jo. Skema dhe dokumenti vlerësohen në shfletuesin tënd; asgjë nuk dërgohet te një server.
Pse `$ref` i skemës sime është “i pazgjidhur”?
Vlerësuesi njeh vetëm skemën që ke ngjitur. Një $ref drejt një skedari ose URL-je tjetër nuk mund të ndiqet; kopjo përkufizimet e referuara te $defs dhe drejto te #/$defs/… në vend të tyre.
Cilin draft duhet të përdor?
Atë që synon projekti yt, dhe deklaroje me $schema. Për skema të reja, 2020-12 është versioni aktual; OpenAPI 3.1 e përdor gjithashtu.
Pse integer e refuzon 2.0?
Nuk e refuzon: JSON Schema e trajton 2.0 si numër të plotë sepse vlera e tij është e plotë. 2.5 dështon te "type": "integer".
A funksionon pa internet?
Po. Pasi faqja të jetë ngarkuar dhe të kesh bërë një vlerësim të parë (që ngarkon vlerësuesin), nuk nevojitet lidhje.
Mjete të ngjashme
- Formatuesi dhe vlerësuesi i JSON Formatues dhe vlerësues JSON falas që bukuron, minifikon dhe kontrollon JSON në shfletuesin tënd, me gabimet e sintaksës sipas rreshtit dhe kolonës.
- Testuesi i JSONPath Testo shprehje JSONPath mbi JSON-in tënd në shfletues. Filtra, prerje, zbritje rekursive, shtigje dhe JSON Pointers, me shembuj të gatshëm.
- Konvertuesi JSON në YAML Konverto JSON në YAML dhe YAML në JSON në shfletuesin tënd, me ankora, çelësa bashkimi dhe skedarë me shumë dokumente të mbështetur. Asgjë nuk ngarkohet.