JSON Schema-validator
Plak een schema en een document, kies het ontwerp; de validator controleert het document aan de hand van elk sleutelwoord dat uw schema gebruikt, type, required, enum, oneOf, $ref, if/then/else en de aangepaste format, en rapporteert elke schending met een JSONPath-achtige verwijzing naar de exacte foutlocatie.
Hoe valideer je aan de hand van een schema
-
1
Plak het schema
JSON-schema-ontwerp 04, 07 of 2020-12. Het sleutelwoord `$schema` (indien aanwezig) selecteert automatisch het bijbehorende ontwerp.
-
2
Plak het document
De JSON die u wilt valideren, moet eerst geldige JSON zijn; syntaxisfouten worden weergegeven voordat het schema wordt geëvalueerd.
-
3
Valideer
Elke schending wordt gemeld met een JSON-pointer (`/user/email`) en het mislukte sleutelwoord (`format`, `required`, enz.).
-
4
Corrigeer en valideer opnieuw
Bewerk een van beide zijden en de status wordt direct bijgewerkt.
Ondersteunde sleutelwoorden
Kern: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Samenstelling: allOf, anyOf, oneOf, not.
Toepassers: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Voorwaardelijk: if, then, else, dependentSchemas.
Referenties: $ref, $defs, $id, $anchor.
Formaten (met validatie wanneer ingeschakeld): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Foutuitvoer
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
Elke fout bevat het pad en het mislukte sleutelwoord, zodat u het snel in uw editor kunt terugvinden.
Ontwerpverschillen die problemen veroorzaken
| Sleutelwoord | Ontwerp 04 | Ontwerp 07 | Ontwerp 2020-12 |
|---|---|---|---|
id versus $id |
id |
$id |
$id |
exclusiveMaximum als bool |
Ja | Getal | Getal |
Syntaxis van de items-array |
items |
items |
prefixItems |
$ref staat sleutelwoorden op hetzelfde niveau toe |
Nee | Nee | Ja |
Stel het juiste ontwerp in; een schema van ontwerp 04 valideren als 2020-12 zal id en enkele andere subtiliteiten verkeerd interpreteren.
Typische workflows
- API-contracttests: voer vóór een implementatie het gegenereerde/bijgewerkte OpenAPI-schema uit tegen echte voorbeeldantwoorden.
- Configuratie verstevigen: valideer elke YAML/JSON-configuratie in de CI aan de hand van een schema voordat u samenvoegt.
- Gegevensinvoer: weiger payloads die niet overeenkomen met de verwachte vorm vroegtijdig, met een duidelijke foutmelding.
Veelvoorkomende fouten
- Het afdwingen van
formatvergeten. Standaard behandelen de meeste validators onbekende formaten alleen als annotatie. Schakel strikte formaatvalidatie in om ongeldige e-mails en datums daadwerkelijk af te wijzen. - Overmatig gebruik van
oneOf. Als twee takken vanoneOfelkaar overlappen, mislukt het document (het moet precies met één overeenkomen). GebruikanyOfof discriminatorpatronen. - Strakke schema’s met
additionalProperties: false. Het toevoegen van een nieuw optioneel veld wordt een brekende wijziging. Laat het weg, tenzij u echt een gesloten object wilt.
Veelgestelde vragen
Ja. Ontwerp 2020-12, 07 en 04 worden allemaal ondersteund. De validator leest het sleutelwoord $schema uit uw document om het juiste te selecteren, of valt terug op de selector in de interface.
Standaardformaten (email, date-time, uuid, ipv4, enz.) worden gevalideerd wanneer strikte formaatvalidatie is ingeschakeld. Aangepaste formaten die in uw schema zijn gedeclareerd, worden alleen als annotatie behandeld, tenzij u een regex met pattern opgeeft.
Interne referenties (#/$defs/foo) worden automatisch opgelost. Externe HTTP-referenties worden standaard niet opgehaald, om veiligheidsredenen. Plaats uw externe referenties eerst inline, of gebruik een speciale tool die het op afstand oplossen van $ref ondersteunt.
Ja. Zowel het schema als het document blijven lokaal. Geplakte inhoud wordt nooit geüpload, veilig voor interne API-contracten en gevoelige gegevens.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
EditorConfig-generator
Genereer een .editorconfig-bestand met uw regels voor inspringstijl en -grootte, regeleinde, tekenset en witruimte voor consistente opmaak in alle IDE's en editors.
HTML-opmaker
Formatteer HTML lokaal in de browser met twee of vier spaties inspringing. HTML wordt niet geüpload of gevalideerd.
Tool beschikbaar in andere talen
- JSON Schema-validator [SV]
- أداة التحقق من مخطط JSON [AR]
- Trình xác thực JSON Schema [VI]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Validador de JSON Schema [ES]
- JSONスキーマバリデーター [JA]
- Penentu Struktur JSON [ID]
- Validateur de schéma JSON [FR]
- JSON-Schema-Validator [DE]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [PT]
- JSON 스키마 검증기 [KO]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]