Zum Inhalt springen

JSON-Schema-Validierung

Fügen Sie Ihr Schema und ein Beispiel-JSON ein und sehen Sie, welches Feld welche Regel verletzt, mit Instanzpfad ($.positionen[0].menge) und Schemapfad. Nicht unterstützte Schlüsselwörter werden nie stillschweigend übergangen, sondern gesondert aufgelistet. Die Prüfung läuft im Browser; Schema und Daten werden nirgendwohin gesendet.

Kostenloses Werkzeug · Integration

Fügen Sie in jedes Feld ein gültiges JSON-Dokument ein. Das Schema darf ein Objekt oder true/false sein; es gelten die Regeln von Draft 2020-12.

Die Validierung läuft in Ihrem Browser; Schema und JSON werden nirgendwohin gesendet und nicht gespeichert.

Ergebnis

Fügen Sie zur Prüfung Schema und Beispiel-JSON ein oder laden Sie das Beispiel.

Unterstützte Regeln
  • Typ und Wert: type (einzeln oder als Array, einschließlich integer), enum, const.
  • Objekt: properties, required, additionalProperties (boolean oder Schema), minProperties, maxProperties.
  • Array: items (nach prefixItems), prefixItems, minItems, maxItems, uniqueItems.
  • Zahl: minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf (ohne Gleitkomma-Abweichung: 0,3 ist ein Vielfaches von 0,1).
  • Zeichenkette: minLength, maxLength (zählt Unicode-Zeichen), pattern (ECMAScript-regulärer Ausdruck, Treffer an beliebiger Stelle), format (nur email, date, date-time, uri, uuid; einfache Prüfungen).
  • Kombination: allOf, anyOf, oneOf, not. Verweis: $ref nur für Zeiger im selben Dokument (#, #/$defs/name).
  • Annotationsfelder wie title, description, default, examples, $comment werden ignoriert; jedes Schlüsselwort außerhalb der obigen wird als „nicht unterstützt“ aufgelistet.
  • Pfade: Der Instanzpfad beginnt an der Wurzel $ ($.a[0].b, ein Schlüssel mit Leerzeichen lautet $["a b"]); der Schemapfad ist die Position der Regel im Schemadokument (#/properties/a/type; nach einem $ref #/$defs/name/type).

Dieses Werkzeug setzt eine Teilmenge von JSON Schema um und ist kein vollständiger Konformitätsprüfer. Nicht unterstützte Schlüsselwörter werden nicht ausgewertet, Formatprüfungen sind einfach gehalten, und das Schema selbst wird nicht gegen das Metaschema validiert. Führen Sie die Validierung in der Produktion mit einer Bibliothek Ihres Stacks durch (z. B. Ajv, jsonschema).

Möchten Sie die Datenverträge und Validierungsregeln zwischen Ihren Systemen gemeinsam entwerfen? Wir können Schemas, Versionierung und Fehlerbehandlung besprechen.

Gespräch anfragen

01

So funktioniert es

  1. A

    Fügen Sie das Schema und das zu prüfende Beispiel-JSON ein; bei fehlerhaftem JSON sehen Sie, in welchem Feld sowie in welcher Zeile und Spalte.

  2. B

    Sehen Sie in der Verletzungsliste auf Instanzpfad und Schemapfad: Welches Feld welche Regel verletzt, steht Zeile für Zeile da.

  3. C

    Prüfen Sie die Liste der nicht unterstützten Schlüsselwörter; alles, was dort steht, wurde von diesem Werkzeug nicht ausgewertet.

02

Was wird geprüft?

Ein JSON Schema ist ein Vertrag, der Struktur und Wertregeln eines JSON-Dokuments beschreibt: welche Felder Pflicht sind, von welchem Typ, in welchem Bereich, mit welchem Muster. Dieses Werkzeug sagt, ob das Beispiel das Schema erfüllt, und listet jede Stelle auf, an der es das nicht tut; es bricht nicht beim ersten Fehler ab.

In Integrationen ist ein Schema der Datenvertrag zwischen zwei Systemen: Wer eine Webhook-Nutzlast, eine API-Antwort oder eine Importdatei vor dem Senden gegen das Schema prüft, fängt Fehler in der Entwicklung statt in der Produktion ab.

03

Die Pfade lesen

Jede Verletzung hat zwei Orte. Der Instanzpfad zeigt, wo der fehlerhafte Wert steht: $.positionen[0].menge ist das Feld menge des ersten Elements des Arrays positionen, von der Wurzel aus gezählt. Der Schemapfad zeigt, welche Regel verletzt wurde: #/$defs/position/properties/menge/minimum.

Bei $ref führt der Schemapfad zur referenzierten Definition; so sehen Sie bei vielen Feldern mit gemeinsamer Definition, aus welcher Regel der Fehler stammt.

04

Umfang und Grenzen

Das Werkzeug setzt eine häufig genutzte Teilmenge von Draft 2020-12 um (Typ, Pflichtfelder, Wertebereiche, Muster, enum, Kombinationen, $ref im selben Dokument). Schlüsselwörter wie if/then/else, patternProperties, contains, dependentRequired, unevaluatedProperties und externe $ref werden nicht ausgewertet; sie werden jedes Mal aufgelistet, weil eine nicht ausgewertete Regel fälschlich ein „gültig“ ergeben kann.

format wird nur für email, date, date-time, uri und uuid und nur einfach geprüft. Die Spezifikation behandelt format standardmäßig als Annotation; dieses Werkzeug wendet diese fünf Formate als Zusicherung an.

Häufige Fragen

Werden mein Schema und meine Daten irgendwohin gesendet?
Nein. Die Validierung läuft in Ihrem Browser; Schema und Beispiel-JSON werden weder an einen Server gesendet noch gespeichert. Dennoch empfehlen wir, Beispiele mit Kundendaten zu anonymisieren, bevor Sie sie weitergeben.
Prüft dieses Werkzeug mein Schema oder das Beispiel?
Es prüft das Beispiel gegen das Schema. Das Schema selbst wird nicht vollständig gegen das Metaschema validiert; nur offensichtliche Probleme (ein ungültiger type-Name, ein defekter regulärer Ausdruck, ein nicht auflösbarer $ref, ein falscher Werttyp) werden als „Probleme im Schema“ gemeldet.
Warum gibt es eine Liste nicht unterstützter Schlüsselwörter?
Wird eine nicht ausgewertete Regel stillschweigend übersprungen, wirkt das Beispiel gültig, wurde aber nie geprüft. Deshalb werden jedes Schlüsselwort, das im Schema steht, aber nicht angewendet wird, und jeder unbekannte Formatname gesondert aufgelistet. Ist diese Liste leer, ist das Ergebnis für die vollständig unterstützten Regeln verlässlich.
Ist die Zahl 1.0 eine Ganzzahl (integer)?
Ja. In 2020-12 ist jede Zahl, deren Wert ganzzahlig ist, ein integer, auch 1.0. Die Schreibweise im JSON-Text (1 oder 1.0) wird nicht unterschieden, da der Parser beide als dieselbe Zahl liest.
Was ist der Unterschied zwischen pattern und format?
pattern ist ein regulärer Ausdruck und trifft an beliebiger Stelle der Zeichenkette; für einen Treffer von Anfang bis Ende müssen Sie ^ und $ schreiben. format ist eine benannte Form (E-Mail, Datum …); dieses Werkzeug prüft nur fünf Formate, und zwar einfach. Die E-Mail-Prüfung ist zum Beispiel keine vollständige RFC-5322-Validierung.
Ersetzt das Ajv oder einen anderen Validator?
Nein. Es dient der schnellen Kontrolle und dem Feedback beim Schreiben eines Schemas. Verwenden Sie in der Produktion eine Bibliothek, die das Schema kompiliert, vollständige Draft-Unterstützung und detaillierte Formatprüfungen bietet, und versionieren Sie Ihre Schemas.

Entwerfen wir Ihre Datenverträge gemeinsam

Wir entwerfen Schemas, Versionierung und Fehlerbehandlung für die Datenflüsse zwischen CRM-, ERP- und Drittsystemen. Besprechen wir Ihren bestehenden Ablauf in einem kostenlosen Erstgespräch.