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
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
Webpack-configuratiegenerator
Maak een webpack.config.js voor webpack 5 vanuit een kort formulier: stel entry, uitvoermap en mode in en zet TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server aan.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
SVG-golfgenerator
Genereer een vloeiende SVG-golfscheiding voor headers en footers met instelbare amplitude, frequentie, kleur en positie boven of onder. Kopieer de SVG-code.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
Tool beschikbaar in andere talen
- JSONスキーマバリデーター [JA]
- JSON Schema-validator [SV]
- Penentu Struktur JSON [ID]
- Validador de JSON Schema [PT]
- JSON 스키마 검증기 [KO]
- Validateur de schéma JSON [FR]
- Trình xác thực JSON Schema [VI]
- JSON-Schema-Validator [DE]
- أداة التحقق من مخطط JSON [AR]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [ES]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- Validator di JSON Schema [IT]
- JSON Schema Validator [EN]