Utilia

JSON Schema sannprófari

Sannprófaðu JSON-skjal gagnvart JSON Schema í vafranum. Hver villa er talin upp með slóð tilviks, lykilorði og slóð í schema.

Hvernig á að sannprófa JSON gegn schema

  1. Límdu schema þitt í JSON Schema og gögnin þín í JSON-skjal, eða veldu tilbúið dæmi úr Dæmi.
  2. Láttu Drög (draft) vera á Sjálfvirkt ($schema) til að nota útgáfuna sem $schema í schema nefnir, eða þvingaðu draft 4, 7, 2019-09 eða 2020-12.
  3. Sannprófun keyrir á meðan þú skrifar; Sannprófa keyrir hana aftur. Sníða bæði endurinndregur báða textana.
  4. Lestu niðurstöðuna: græna línu þegar skjalið er gilt, annars töflu af villum.

Að lesa villutöfluna

Hver röð er ein regla sem brást:

  • Slóð tilviks er JSON Pointer á gildið sem brást. /roles/1 er annað atriðið í roles; (rót) er allt skjalið.
  • Lykilorð er reglan í schema sem brást: type, required, minimum, pattern, format, additionalProperties og svo framvegis.
  • Skilaboð útskýra bilunina, til dæmis 0 is less than 1.
  • Slóð í schema bendir á lykilorðið inni í schema, eins og /properties/id/minimum, svo þú finnir regluna fljótt.

Sannprófun stöðvast ekki við fyrsta vandamál: allar villur eru taldar upp. Þegar eigindi hlutar bregst gefur sannprófarinn samantekt („Property “id” does not match schema“) og síðan nákvæma ástæðu. Sýna aðeins nákvæmustu villurnar felur þessar samantektir; taktu hakið úr til að sjá alla keðjuna. Villur undir anyOf og oneOf eru alltaf geymdar ásamt nákvæmum villum hverrar greinar, því þær skiljast aðeins saman. Villuskilaboð sannprófarans eru á ensku.

Hvað er stutt

  • Drög: 4, 6 (sannprófuð með reglum draft 7), 7, 2019-09 og 2020-12, þar á meðal $defs/definitions, staðbundið $ref, if/then/else, dependentRequired, dependentSchemas, prefixItems, unevaluatedProperties og unevaluatedItems.
  • Snið: date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uri-template, uuid, regex, json-pointer og relative-json-pointer eru athuguð. Óþekkt snið eru hunsuð, eins og skilgreiningin leyfir.
  • Tilvísanir: $ref getur bent hvert sem er inni í schema, þar á meðal á $id sem það lýsir yfir. Fjarlægum schema er aldrei hlaðið niður; tilvísun á aðra vefslóð er tilkynnt sem óleyst.

Þetta verkfæri sannprófar skjöl gagnvart schema þínu. Það athugar ekki að schema sjálft fylgi meta-schema, en það varar við óþekktum type-heitum eins og "strin" eða "int", algengri innsláttarvillu sem sannprófarar hunsa annars þegjandi.

Dæmin

  • Notendasnið (2020-12): required, strengjalengdir, format: email, enum inni í items, uniqueItems og additionalProperties: false.
  • Vörulisti með $ref (draft-07): fylki þar sem atriðin vísa á #/definitions/product, með pattern fyrir SKU og verð með exclusiveMinimum.
  • Stillingar með if/then (2019-09): skírteini sem er aðeins krafist í HTTPS-ham, oneOf milli netfangs og URI, og tölulegar takmarkanir.

Hverju dæmi fylgir skjal með viljandi mistökum, svo þú sjáir hvernig villurnar líta út.

Algengar spurningar

Er gögnunum mínum hlaðið upp?

Nei. Schema og skjalið eru sannprófuð í vafranum þínum; ekkert er sent á netþjón.

Af hverju er $ref í schema mínu „óleyst“?

Sannprófarinn þekkir aðeins schema sem þú límdir. Ekki er hægt að fylgja $ref á aðra skrá eða vefslóð; afritaðu skilgreiningarnar sem vísað er í yfir í $defs og bentu á #/$defs/… í staðinn.

Hvaða drög (draft) ætti ég að nota?

Notaðu þau sem verkefnið þitt miðar við og lýstu þeim með $schema. Fyrir ný schema er 2020-12 núverandi útgáfa; OpenAPI 3.1 notar hana líka.

Af hverju hafnar integer ekki 2.0?

Það gerir það ekki: JSON Schema meðhöndlar 2.0 sem heiltölu því gildið er heilt. 2.5 stenst ekki "type": "integer".

Virkar það án nettengingar?

Já. Þegar síðan hefur hlaðist og þú hefur keyrt fyrstu sannprófun (sem hleður sannprófaranum) þarf enga tengingu.