Utilia

JSON Schema valideerija

Valideeri JSON-dokument JSON Schema vastu oma brauseris. Iga viga loetletakse koos eksemplari tee, võtmesõna ja skeemi teega.

Kuidas JSON-i skeemi vastu valideerida

  1. Kleebi skeem väljale JSON Schema ja andmed väljale JSON-dokument või vali valmis juhtum jaotisest Näide.
  2. Jäta Versioon väärtusele Automaatne ($schema), et kasutada skeemi $schema nimetatud versiooni, või sunni peale draft 4, 7, 2019-09 või 2020-12.
  3. Valideerimine töötab kirjutamise ajal; Valideeri käivitab selle uuesti. Vorminda mõlemad taandab mõlemad tekstid uuesti.
  4. Loe tulemust: roheline rida, kui dokument on korrektne, muidu veatabel.

Veatabeli lugemine

Iga rida on üks ebaõnnestunud reegel:

  • Eksemplari tee on JSON Pointer väärtuseni, mis ebaõnnestus. /roles/1 on roles teine element; (juur) on kogu dokument.
  • Võtmesõna on skeemi reegel, mis ebaõnnestus: type, required, minimum, pattern, format, additionalProperties jne.
  • Teade selgitab ebaõnnestumist, näiteks 0 is less than 1.
  • Skeemi tee viitab võtmesõnale skeemi sees, näiteks /properties/id/minimum, et saaksid reegli kiiresti üles leida.

Valideerimine ei peatu esimesel probleemil: kõik vead loetletakse. Kui objekti omadus ebaõnnestub, teatab valideerija kokkuvõtte („Property “id” does not match schema“), millele järgneb täpne põhjus. Näita ainult kõige täpsemaid vigu peidab need kokkuvõtted; võta märge maha, et näha kogu ahelat. Vead anyOf ja oneOf all hoitakse alati koos iga haru täpsete vigadega, sest need on mõistlikud ainult koos.

Mida toetatakse

  • Versioonid: 4, 6 (valideeritakse draft 7 reeglitega), 7, 2019-09 ja 2020-12, sealhulgas $defs/definitions, kohalik $ref, if/then/else, dependentRequired, dependentSchemas, prefixItems, unevaluatedProperties ja unevaluatedItems.
  • Vormingud: kontrollitakse date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uri-template, uuid, regex, json-pointer ja relative-json-pointer. Tundmatud vormingud ignoreeritakse, nagu spetsifikatsioon lubab.
  • Viited: $ref võib osutada kuhu tahes skeemi sees, sealhulgas selles deklareeritud $id-le. Kaugskeeme ei laadita kunagi alla; viide teisele URL-ile teatatakse lahendamata viitena.

See tööriist valideerib dokumente sinu skeemi vastu. See ei kontrolli, kas skeem ise järgib metaskeemi, kuid hoiatab tundmatute type nimede eest, nagu "strin" või "int", mis on levinud kirjaviga, mida valideerijad muidu vaikselt ignoreerivad.

Näited

  • Kasutajaprofiil (2020-12): required, stringide pikkused, format: email, enum elementide sees, uniqueItems ja additionalProperties: false.
  • Tootenimekiri koos $ref-iga (draft-07): massiiv, mille elemendid viitavad #/definitions/product, koos SKU pattern-iga ja exclusiveMinimum hinnaga.
  • Seadistus if/then-iga (2019-09): sertifikaat nõutav ainult HTTPS-režiimis, oneOf e-posti ja URI vahel ning arvulised piirid.

Iga näide tuleb dokumendiga, mis sisaldab tahtlikke vigu, et näeksid, milline veateade välja näeb.

Korduma kippuvad küsimused

Kas minu andmed laaditakse üles?

Ei. Skeem ja dokument valideeritakse sinu brauseris; midagi ei saadeta serverisse.

Miks on minu skeemi $ref „lahendamata“?

Valideerija teab ainult skeemi, mille kleepisid. $ref teise faili või URL-i juurde ei saa jälgida; kopeeri viidatud definitsioonid $defs sisse ja viita hoopis #/$defs/….

Millist versiooni peaksin kasutama?

Kasuta seda, mida sinu projekt sihib, ja deklareeri see $schema abil. Uute skeemide jaoks on 2020-12 praegune versioon; ka OpenAPI 3.1 kasutab seda.

Miks integer lükkab tagasi 2.0?

See ei lükka: JSON Schema käsitleb 2.0 täisarvuna, sest selle väärtus on täisarv. 2.5 ei läbi "type": "integer".

Kas see töötab võrguühenduseta?

Jah. Kui leht on laaditud ja oled teinud esimese valideerimise (mis laeb valideerija), ei ole ühendust vaja.