Utilia

JSON Schema validators

Pārbaudiet JSON dokumentu pret JSON Schema pārlūkprogrammā. Katra kļūda tiek uzskaitīta ar instances ceļu, atslēgvārdu un shēmas ceļu.

Kā pārbaudīt JSON pret shēmu

  1. Ielīmējiet shēmu laukā JSON Schema un datus laukā JSON dokuments vai izvēlieties gatavu gadījumu sadaļā Piemērs.
  2. Atstājiet Versija pie Automātiski ($schema), lai izmantotu versiju, ko nosauc shēmas $schema, vai piespiediet draft 4, 7, 2019-09 vai 2020-12.
  3. Pārbaude notiek rakstot; Pārbaudīt palaiž to vēlreiz. Formatēt abus pārveido abu tekstu atkāpes.
  4. Izlasiet rezultātu: zaļa rindiņa, ja dokuments ir derīgs, citādi – kļūdu tabula.

Validatora kļūdu ziņojumi ir angļu valodā.

Kļūdu tabulas lasīšana

Katra rinda ir viens neizpildīts noteikums:

  • Instances ceļš ir JSON rādītājs uz vērtību, kas neizturēja pārbaudi. /roles/1 ir otrais roles elements; (sakne) ir viss dokuments.
  • Atslēgvārds ir shēmas noteikums, kas neizpildījās: type, required, minimum, pattern, format, additionalProperties un tā tālāk.
  • Ziņojums paskaidro kļūmi, piemēram, 0 is less than 1.
  • Shēmas ceļš norāda uz atslēgvārdu shēmā, piemēram, /properties/id/minimum, tāpēc varat ātri atrast noteikumu.

Pārbaude neapstājas pie pirmās problēmas: tiek uzskaitītas visas kļūdas. Kad objekta īpašība neizturēja pārbaudi, validators ziņo kopsavilkumu („Property “id” does not match schema“), kam seko precīzs iemesls. Rādīt tikai konkrētākās kļūdas paslēpj šos kopsavilkumus; noņemiet atzīmi, lai redzētu pilnu ķēdi. Kļūdas zem anyOf un oneOf vienmēr tiek paturētas kopā ar katras atzara konkrētajām kļūdām, jo tām ir jēga tikai kopā.

Kas tiek atbalstīts

  • Versijas: 4, 6 (tiek pārbaudīta ar draft 7 noteikumiem), 7, 2019-09 un 2020-12, tostarp $defs/definitions, lokāls $ref, if/then/else, dependentRequired, dependentSchemas, prefixItems, unevaluatedProperties un unevaluatedItems.
  • Formāti: tiek pārbaudīti date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uri-template, uuid, regex, json-pointer un relative-json-pointer. Nezināmi formāti tiek ignorēti, kā to pieļauj specifikācija.
  • Atsauces: $ref var norādīt jebkur shēmas iekšienē, ieskaitot uz $id, ko tā deklarē. Attālās shēmas netiek lejupielādētas; atsauce uz citu URL tiek uzrādīta kā neatrisināta.

Šis rīks pārbauda dokumentus pret jūsu shēmu. Tas nepārbauda, vai pati shēma atbilst metashēmai, taču brīdina par nezināmiem type nosaukumiem, piemēram, "strin" vai "int" – biežu drukas kļūdu, ko validatori citādi klusējot ignorē.

Piemēri

  • Lietotāja profils (2020-12): required, virkņu garumi, format: email, enum iekš items, uniqueItems un additionalProperties: false.
  • Produktu saraksts ar $ref (draft-07): masīvs, kura elementi atsaucas uz #/definitions/product, ar pattern SKU un exclusiveMinimum cenu.
  • Konfigurācija ar if/then (2019-09): sertifikāts, kas vajadzīgs tikai HTTPS režīmā, oneOf starp e-pastu un URI un skaitliskas robežas.

Katram piemēram ir dokuments ar tīšām kļūdām, lai varētu redzēt, kā kļūdas izskatās.

Biežāk uzdotie jautājumi

Vai mani dati tiek augšupielādēti?

Nē. Shēma un dokuments tiek pārbaudīti jūsu pārlūkprogrammā; nekas netiek sūtīts uz serveri.

Kāpēc manas shēmas $ref ir „neatrisināts“?

Validators zina tikai to shēmu, ko ielīmējāt. $ref uz citu failu vai URL nevar sekot; pārkopējiet atsauces definīcijas uz $defs un norādiet uz #/$defs/….

Kuru versiju izmantot?

Izmantojiet to, uz kuru mērķē jūsu projekts, un deklarējiet to ar $schema. Jaunām shēmām 2020-12 ir pašreizējā versija; to izmanto arī OpenAPI 3.1.

Kāpēc integer noraida 2.0?

Tas nenoraida: JSON Schema 2.0 uzskata par veselu skaitli, jo tā vērtība ir vesela. 2.5 neizpilda "type": "integer".

Vai tas darbojas bezsaistē?

Jā. Kad lapa ir ielādēta un esat veicis pirmo pārbaudi (kas ielādē validatoru), savienojums nav vajadzīgs.