JSON Schema-validerare
Validera ett JSON-dokument mot ett JSON Schema i webbläsaren. Varje fel listas med instanssökväg, nyckelord och schemasökväg.
| # | Instanssökväg | Nyckelord | Meddelande | Schemasökväg |
|---|
Så validerar du JSON mot ett schema
- Klistra in ditt schema i JSON Schema och dina data i JSON-dokument, eller välj ett färdigt fall under Exempel.
- Låt Draft stå på Automatiskt ($schema) för att använda den version som schemats
$schemaanger, eller tvinga fram draft 4, 7, 2019-09 eller 2020-12. - Valideringen körs medan du skriver, och Validera kör den igen. Formatera båda gör om indragen i båda texterna.
- Läs resultatet: en grön rad när dokumentet är giltigt, annars en tabell med fel.
Så läser du feltabellen
Varje rad är en regel som inte uppfylldes:
- Instanssökväg är en JSON Pointer till värdet som inte godkändes.
/roles/1är det andra elementet iroles, och(rot)är hela dokumentet. - Nyckelord är den schemaregel som inte uppfylldes:
type,required,minimum,pattern,format,additionalPropertiesoch så vidare. - Meddelande förklarar felet, till exempel
0 is less than 1.Meddelandena från valideraren är på engelska. - Schemasökväg pekar på nyckelordet i schemat, till exempel
/properties/id/minimum, så att du snabbt hittar regeln.
Valideringen stannar inte vid det första problemet: alla fel listas. När en egenskap i ett objekt inte godkänns rapporterar valideraren en sammanfattning (”Property “id” does not match schema”) följd av den exakta orsaken. Visa bara de mest specifika felen döljer de sammanfattningarna. Avmarkera alternativet för att se hela kedjan. Fel under anyOf och oneOf hålls alltid ihop med de specifika felen i varje gren, eftersom de bara blir begripliga tillsammans.
Vad som stöds
- Drafts: 4, 6 (valideras med reglerna för draft 7), 7, 2019-09 och 2020-12, inklusive
$defs/definitions, lokala$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesochunevaluatedItems. - Format:
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerochrelative-json-pointerkontrolleras. Okända format ignoreras, vilket specifikationen tillåter. - Referenser:
$refkan peka var som helst i schemat, även på ett$idsom schemat deklarerar. Externa scheman laddas aldrig ner, och en referens till en annan URL rapporteras som olöst.
Verktyget validerar dokument mot ditt schema. Det kontrollerar inte att själva schemat följer metaschemat, men det varnar för okända type-namn som "strin" eller "int", ett vanligt stavfel som validerare annars ignorerar i tysthet.
Exemplen
- Användarprofil (2020-12):
required, stränglängder,format: email, enenumiitems,uniqueItemsochadditionalProperties: false. - Produktlista med $ref (draft-07): en lista vars element refererar till
#/definitions/product, med ettpatternför artikelnumret (SKU) och ett pris medexclusiveMinimum. - Konfiguration med if/then (2019-09): ett certifikat som bara krävs i HTTPS-läge, ett
oneOfmellan e-post och URI, och numeriska gränser.
Varje exempel har ett dokument med avsiktliga fel, så att du ser hur felen ser ut.
Vanliga frågor
Laddas mina data upp?
Nej. Schemat och dokumentet valideras i din webbläsare. Ingenting skickas till en server.
Varför är mitt schemas $ref ”olöst”?
Valideraren känner bara till det schema du klistrade in. En $ref till en annan fil eller URL kan inte följas. Kopiera de refererade definitionerna till $defs och peka på #/$defs/… i stället.
Vilken draft ska jag använda?
Använd den som ditt projekt riktar sig mot, och deklarera den med $schema. För nya scheman är 2020-12 den aktuella versionen, och OpenAPI 3.1 använder den också.
Varför avvisar integer 2.0?
Det gör den inte: JSON Schema behandlar 2.0 som ett heltal eftersom värdet är helt. 2.5 underkänns däremot av "type": "integer".
Fungerar det offline?
Ja. När sidan har laddats och du har kört en första validering (som laddar valideraren) behövs ingen anslutning.
Relaterade verktyg
- JSON-formaterare och validerare Gratis JSON-formaterare och validerare som snyggar till, minifierar och kontrollerar JSON i webbläsaren, med syntaxfel angivna med rad och kolumn.
- JSONPath-testare Testa JSONPath-uttryck på din egen JSON i webbläsaren. Filter, slices, rekursiv sökning, sökvägar och JSON Pointers, med färdiga exempel.
- Konvertera JSON till YAML Konvertera JSON till YAML och YAML till JSON i webbläsaren, med stöd för ankare, merge-nycklar och filer med flera dokument. Inget laddas upp.