Wat het doet
JSON Schema is een vocabulaire om de vorm van JSON-gegevens te beschrijven: welke eigenschappen een object moet hebben, welk type elke waarde heeft, toegestane bereiken en patronen, arraylengtes en nog veel meer. API’s gebruiken het in OpenAPI-specificaties, editors voor autocompletion in configuratiebestanden en back-ends om foute verzoeken te weigeren.
Deze validator controleert een JSON-document tegen een schema en toont elk gevonden probleem. Elke fout laat zien waar hij in de gegevens zit (een JSON Pointer zoals /tags/1), een leesbare melding en het schema-sleutelwoord dat faalde, zodat je de gegevens of het schema snel kunt corrigeren. Ondersteund worden draft 2020-12, 2019-09, draft-07 en draft-04, inclusief $ref, $defs, allOf/anyOf/oneOf, if/then/else, unevaluatedProperties en formaatcontroles.
Zo gebruik je het
- Plak de gegevens in JSON-gegevens en het schema in JSON Schema, of upload aan elke kant een bestand. Voorbeeld laadt een gebruikersrecord met een paar opzettelijke fouten.
- Het resultaat wordt tijdens het typen bijgewerkt: een groene badge als de gegevens geldig zijn, anders het aantal fouten en de lijst.
- Laat Versie op Automatisch staan om
$schemate volgen, of kies zelf een versie. Zet Alle fouten tonen uit om bij de eerste fout te stoppen. - Fouten kopiëren kopieert de lijst als platte tekst, voor een bugmelding of een codereview.
Is een van beide kanten geen geldige JSON, dan zegt de melding of het om de gegevens of het schema gaat, met regel en kolom.
Voorbeeld
Met dit schema:
{
"type": "object",
"required": ["id"],
"properties": {
"id": { "type": "integer" },
"age": { "type": "integer", "minimum": 0 }
}
}
levert het document {"age": -1} twee fouten op: bij (root) ontbreekt de verplichte eigenschap id; bij /age ligt de waarde onder het minimum van 0.
Tips
Voeg "additionalProperties": false toe om verkeerd gespelde eigenschapsnamen te vangen, die anders ongemerkt doorglippen. Gebruik enum of const voor vaste waarden en pattern voor strings zoals productcodes. Wordt het schema groot, verplaats herhaalde delen dan naar $defs en verwijs ernaar met $ref.
Veelgestelde vragen
› Welke JSON Schema-versies worden ondersteund?
Draft 2020-12, 2019-09, draft-07 (dat ook draft-06 dekt) en draft-04. Met Versie op Automatisch wordt de versie uit het sleutelwoord $schema gelezen; schema’s zonder $schema worden als 2020-12 behandeld.
› Wat betekenen de paden bij de fouten?
Het eerste pad is een JSON Pointer naar de foute waarde in je gegevens, zoals /items/2/price; (root) is het hele document. De grijze regel toont het sleutelwoord dat faalde en de plek in het schema, zoals minimum · #/properties/age/minimum.
› Worden formaten zoals email en date-time gecontroleerd?
Ja. Gangbare formaten worden gevalideerd: date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex, json-pointer en meer. Onbekende formaten worden genegeerd, zoals de specificatie toestaat.
› Kan het schema naar andere bestanden verwijzen?
Verwijzingen binnen hetzelfde schema werken, bijvoorbeeld een $ref naar #/$defs/address. Externe URL’s worden niet gedownload, omdat niets je browser verlaat; plak verwezen definities in $defs.