JSON Schema-validator
Valider et JSON-dokument mod et JSON Schema i din browser. Hver fejl vises med sin instanssti, sit nøgleord og sin schema-sti. Fejlmeddelelserne er på engelsk.
| # | Instanssti | Nøgleord | Meddelelse | Schema-sti |
|---|
Sådan validerer du JSON mod et schema
- Indsæt dit schema i JSON Schema og dine data i JSON-dokument, eller vælg et færdigt tilfælde under Eksempel.
- Lad Draft stå på Automatisk ($schema) for at bruge den version, der er angivet i schemaets
$schema, eller gennemtving draft 4, 7, 2019-09 eller 2020-12. - Valideringen kører, mens du skriver. Validér kører den igen. Formatér begge rykker begge tekster ind igen.
- Læs resultatet: en grøn linje, når dokumentet er gyldigt, ellers en tabel med fejl.
Sådan læser du fejltabellen
Hver række er én regel, der ikke blev overholdt:
- Instanssti er en JSON Pointer til den værdi, der fejlede.
/roles/1er det andet element iroles. (rod) er hele dokumentet. - Nøgleord er den schema-regel, der fejlede:
type,required,minimum,pattern,format,additionalPropertiesog så videre. - Meddelelse forklarer fejlen, for eksempel
0 is less than 1. - Schema-sti peger på nøgleordet inde i schemaet, som
/properties/id/minimum, så du hurtigt kan finde reglen.
Valideringen stopper ikke ved det første problem: Alle fejl vises på listen. Når en objektegenskab fejler, melder validatoren en opsummering (»Property “id” does not match schema«) efterfulgt af den præcise årsag. Vis kun de mest specifikke fejl skjuler disse opsummeringer. Fjern markeringen for at se hele kæden. Fejl under anyOf og oneOf bevares altid sammen med de specifikke fejl for hver gren, fordi de kun giver mening sammen.
Fejlmeddelelserne i kolonnen Meddelelse kommer fra validatoren og er på engelsk. Resten af siden er på dansk.
Hvad der understøttes
- Drafts: 4, 6 (valideres med reglerne for draft 7), 7, 2019-09 og 2020-12, inklusive
$defs/definitions, lokal$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesogunevaluatedItems. - Formater:
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerogrelative-json-pointerkontrolleres. Ukendte formater ignoreres, som specifikationen tillader. - Referencer:
$refkan pege hvor som helst inde i schemaet, også på et$id, det selv erklærer. Eksterne schemaer downloades aldrig. En reference til en anden URL meldes som uløst.
Dette værktøj validerer dokumenter mod dit schema. Det tjekker ikke, at selve schemaet følger meta-schemaet, men det advarer om ukendte type-navne som "strin" eller "int", en almindelig tastefejl, som validatorer ellers ignorerer uden at sige noget.
Eksemplerne
- Brugerprofil (2020-12):
required, strenglængder,format: email, enenuminde iitems,uniqueItemsogadditionalProperties: false. - Produktliste med $ref (draft-07): en liste, hvis elementer henviser til
#/definitions/product, med etpatternfor varenummeret og en pris medexclusiveMinimum. - Konfiguration med if/then (2019-09): et certifikat, der kun er påkrævet i HTTPS-tilstand, en
oneOfmellem e-mail og URI og talgrænser.
Hvert eksempel kommer med et dokument med bevidste fejl, så du kan se, hvordan fejlene ser ud.
Ofte stillede spørgsmål
Bliver mine data uploadet?
Nej. Schemaet og dokumentet valideres i din browser. Intet sendes til en server.
Hvorfor er mit schemas $ref »uløst«?
Validatoren kender kun det schema, du har indsat. En $ref til en anden fil eller URL kan ikke følges. Kopiér de refererede definitioner ind i $defs, og peg på #/$defs/… i stedet.
Hvilken draft skal jeg bruge?
Brug den, dit projekt bruger, og angiv den med $schema. Til nye schemaer er 2020-12 den aktuelle version. OpenAPI 3.1 bruger den også.
Hvorfor afviser integer ikke 2.0?
Det gør den ikke: JSON Schema behandler 2.0 som et heltal, fordi værdien er hel. 2.5 fejler "type": "integer".
Virker det offline?
Ja. Når siden er indlæst, og du har kørt en første validering (som indlæser validatoren), er der ikke brug for nogen forbindelse.
Relaterede værktøjer
- JSON-formatering og -validering Gratis JSON-formatering og -validering, der gør JSON pæn, minificerer og tjekker den i din browser, med syntaksfejl angivet med linje og kolonne.
- JSONPath-test Test JSONPath-udtryk på din egen JSON i browseren. Filtre, udsnit, rekursiv nedstigning, stier og JSON Pointers, med færdige eksempler.
- JSON til YAML-konverter Konvertér JSON til YAML og YAML til JSON i din browser, med understøttelse af ankre, merge-nøgler og filer med flere dokumenter. Intet uploades.