JSON-Schema-Validator
Fügen Sie ein Schema und ein Dokument ein, wählen Sie den Entwurf aus, und der Validator überprüft das Dokument gegen jedes Schlüsselwort, das Ihr Schema verwendet, type, required, enum, oneOf, $ref, if/then/else, benutzerdefiniertes format, und meldet jede Verletzung mit einem JSONPath-ähnlichen Zeiger auf den genauen fehlerhaften Ort.
So validieren Sie gegen ein Schema
-
1
Schema einfügen
JSON-Schema-Entwurf 04, 07 oder 2020-12. Das Schlüsselwort `$schema` (falls vorhanden) wählt den Entwurf automatisch aus.
-
2
Dokument einfügen
Das JSON, das Sie validieren möchten. Muss zuerst gültiges JSON sein, Syntaxfehler werden vor der Schemaauswertung angezeigt.
-
3
Validieren
Jede Verletzung wird mit einem JSON-Zeiger (`/user/email`) und dem fehlerhaften Schlüsselwort (`format`, `required` usw.) gemeldet.
-
4
Beheben und erneut validieren
Bearbeiten Sie eine der Seiten und der Status wird live aktualisiert.
Unterstützte Schlüsselwörter
Kern: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Zusammensetzung: allOf, anyOf, oneOf, not.
Anwender: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Bedingungen: if, then, else, dependentSchemas.
Referenzen: $ref, $defs, $id, $anchor.
Formate (mit Validierung, wenn aktiviert): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Fehlerausgabe
FAIL /user/email format "not-an-email" ist kein gültiges "email"
FAIL /user/age minimum -3 ist kleiner als das Minimum 0
FAIL /orders/0/total type "42" ist nicht vom Typ "number"
FAIL / required fehlende erforderliche Eigenschaft "shippingAddress"
Jeder Fehler enthält den Pfad und das Schlüsselwort, das fehlgeschlagen ist, was es einfach macht, es in Ihrem Editor zu finden.
Entwurfsunterschiede, die Probleme verursachen
| Schlüsselwort | Entwurf 04 | Entwurf 07 | Entwurf 2020-12 |
|---|---|---|---|
id vs $id |
id |
$id |
$id |
exclusiveMaximum als bool |
Ja | Zahl | Zahl |
items Array-Syntax |
items |
items |
prefixItems |
$ref erlaubt Geschwister |
Nein | Nein | Ja |
Stellen Sie den richtigen Entwurf ein; die Validierung eines Entwurfs-04-Schemas als 2020-12 wird id und einige andere Feinheiten falsch interpretieren.
Typische Arbeitsabläufe
- API-Vertragstests: Führen Sie vor einem Deployment das generierte/aktualisierte OpenAPI-Schema gegen echte Beispielantworten aus.
- Konfigurationshärtung: Validieren Sie jede YAML/JSON-Konfiguration in CI gegen ein Schema, bevor Sie zusammenführen.
- Datenaufnahme: Lehnen Sie Payloads ab, die nicht der erwarteten Struktur entsprechen, frühzeitig mit einer klaren Fehlermeldung.
Häufige Fehler
- Vergessen der Durchsetzung von
format. Standardmäßig behandeln die meisten Validatoren unbekannte Formate nur als Annotation. Aktivieren Sie die strikte Formatvalidierung, um tatsächlich ungültige E-Mails und Daten abzulehnen. - Übermäßige Verwendung von
oneOf. Wenn zwei Zweige vononeOfsich überschneiden, schlägt das Dokument fehl (es muss genau einem entsprechen). Verwenden SieanyOfoder Diskriminator-Muster. - Strenge Schemata mit
additionalProperties: false. Das Hinzufügen eines neuen optionalen Feldes wird zu einer brechenden Änderung. Lassen Sie es weg, es sei denn, Sie möchten wirklich ein geschlossenes Objekt.
Häufig gestellte Fragen
Ja. Entwurf 2020-12, 07 und 04 werden alle unterstützt. Der Validator liest das Schlüsselwort $schema aus Ihrem Dokument, um den richtigen auszuwählen, oder fällt auf den Selektor in der UI zurück.
Standardformate (email, date-time, uuid, ipv4 usw.) werden validiert, wenn die strikte Formatvalidierung aktiviert ist. Benutzerdefinierte Formate, die in Ihrem Schema deklariert sind, werden nur als Annotation behandelt, es sei denn, Sie geben einen Regex mit pattern an.
Interne Referenzen (#/$defs/foo) werden automatisch aufgelöst. Externe HTTP-Referenzen werden standardmäßig nicht abgerufen, aus Sicherheitsgründen. Inline Ihre externen Referenzen zuerst oder verwenden Sie ein spezielles Tool, das die Auflösung von entfernten $ref unterstützt.
Ja. Sowohl das Schema als auch das Dokument bleiben lokal. Eingefügter Inhalt wird niemals hochgeladen, sicher für interne API-Verträge und sensible Daten.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- Penentu Struktur JSON [ID]
- JSONスキーマバリデーター [JA]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Trình xác thực JSON Schema [VI]
- JSON 스키마 검증기 [KO]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [PT]
- Validador de JSON Schema [ES]
- JSON Schema-validator [SV]
- أداة التحقق من مخطط JSON [AR]
- Validateur de schéma JSON [FR]
- JSON Schema-validator [NL]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]