JSON Schema Validator online: Daten mit Pfad und Grund prüfen
Mit diesem JSON Schema Validator fügst du ein Schema und die JSON-Daten ein und siehst sofort, ob beides zusammenpasst. Wenn nicht, steht zu jedem Fehler der Pfad zum betroffenen Wert und ein verständlicher Grund, etwa $.users[0].email. Unterstützt werden Draft-07, 2019-09 und 2020-12, und beide Felder bleiben auf deinem Gerät.
JSON mit Schema validieren: Schritt für Schritt
- Füge dein Schema in das Feld JSON-Schema ein (dort steht „Füge hier dein JSON-Schema ein ...“).
- Füge die zu prüfenden Daten in das Feld JSON-Daten ein.
- Lies das Ergebnis ab. Es aktualisiert sich beim Einfügen oder etwa 300 Millisekunden, nachdem du aufgehört hast zu tippen. Du musst nichts drücken.
- Ein grünes Gültig mit „Die JSON-Daten entsprechen dem Schema.“ bedeutet: bestanden. Bei „Ungültig: 3 Fehler“ steht jeder Fehler einzeln in der Liste.
- Korrigiere die Daten (oder das Schema); das Ergebnis ändert sich mit jeder Bearbeitung.
Solange nicht beide Felder gefüllt sind, steht im Ergebnis „Füge ein Schema und die JSON-Daten ein, um sie zu prüfen.“ Enthält ein Feld Text, der kein JSON ist, erscheint ein rotes Ungültiges JSON mit dem Grund und „Zeile X, Spalte Y“; das Ergebnis sagt dir, welches Feld du korrigieren musst. Wenn du ein unordentliches Dokument erst aufräumen willst: „JSON formatieren“ zeigt für kaputtes JSON dieselbe Zeile und Spalte.
Fehler lesen: Pfad und Grund
Jeder Fehler besteht aus einem Pfad und einem Grund. Der Pfad beginnt bei $, der Wurzel deiner Daten, und folgt den Eigenschaftsnamen mit Punkten und den Array-Positionen in eckigen Klammern, gezählt ab 0. Beispiel: Das Schema verlangt id als Ganzzahl ab 1, email im Format email und eindeutige tags; die Daten sind {"id":"7","email":"ana@","tags":["a","a"]}. Das Ergebnis lautet „Ungültig: 3 Fehler“:
$.id: Muss eine Ganzzahl sein, ist aber eine Zeichenkette.$.email: Muss dem Format „email“ entsprechen.$.tags: Die Elemente [0] und [1] sind identisch, aber jedes Element muss sich unterscheiden.
Es werden alle Fehler aufgelistet, nicht nur der erste, sodass du ein ganzes Dokument in einem Durchgang korrigierst. Nach 100 Fehlern endet die Liste mit einer Zeile wie „und 250 weitere Fehler nicht angezeigt“; die Zahl in der Überschrift bleibt exakt. Fehlt eine Pflichteigenschaft (required), steht der Fehler am Pfad des Objekts, das sie enthalten sollte, zum Beispiel $.users[0]. Seltenere Schlüsselwörter wie not, contains, propertyNames, dependentRequired und if/then/else haben ebenfalls eigene verständliche Gründe.
Strikter Modus: additionalproperties false
Standardmäßig erlaubt ein Schema zusätzliche Eigenschaften: Daten mit einem unlisteten Feld nick bestehen die Prüfung, wenn das Schema es nie erwähnt. Schalte die Option Strikter Modus ein („Schlägt fehl, wenn die Daten Eigenschaften enthalten, die das Schema nicht aufführt.“), um Tippfehler und Überbleibsel zu finden. Mit dem Schema aus dem Beispiel und den Daten {"id":1,"email":"ana@example.com","nick":"x"} ist das Ergebnis ohne den Modus „Gültig“, mit ihm „Ungültig: 1 Fehler“ bei $: Unerwartete Eigenschaft „nick“.
Hinter dem Schalter ergänzt das Tool unevaluatedProperties: false im Wurzelschema und in jedem Schema einer Eigenschaft oder eines Elements, das ein Objekt beschreibt; das funktioniert auch über $ref hinweg. Dein Text im Feld bleibt unverändert.
- Ein Schema, das
additionalPropertiesoderunevaluatedPropertiesschon selbst setzt, behält seine Wahl. - Ein freies
{"type":"object"}ohnepropertiesbleibt offen. - Zweige von
allOf,anyOfundoneOfsowie Einträge in$defswerden nicht einzeln gesperrt, damit Geschwisterzweige jeweils eigene Eigenschaften deklarieren können.
Draft-07, 2019-09, 2020-12: Versionen, $ref und Formate
Das Tool liest die Zeile "$schema" deines Schemas und prüft mit den passenden Regeln: http://json-schema.org/draft-07/schema# als draft-07, https://json-schema.org/draft/2019-09/schema als 2019-09 und https://json-schema.org/draft/2020-12/schema als 2020-12. Ohne "$schema" gilt 2020-12, bei älterer Syntax wie einem items-Array 2019-09. Draft-04, draft-06 oder jede andere Adresse werden nicht unterstützt; das Ergebnis nennt die Adresse, die das Schema deklariert. Das ist wichtig, weil sich Schlüsselwörter zwischen den Drafts geändert haben: prefixItems gehört zu 2020-12, und aus definitions wurde in 2019-09 $defs. Beide Schreibweisen des Verweises funktionieren: #/$defs/name und #/definitions/name.
$refwird nur innerhalb desselben Schemas aufgelöst. Es wird nichts heruntergeladen, deshalb meldet das Tool einen Verweis wiehttps://example.com/address.jsonals Verweis, den das Schema nicht definiert. Kopiere dieses Schema in dein$defsund richte den$refdarauf.formatwird geprüft, nicht ignoriert: email, date, date-time, uri, uuid und die anderen gängigen Formate schlagen mit „Muss dem Format ... entsprechen“ fehl.- Ein kaputtes Schema zeigt „Das Schema selbst ist nicht gültig“ mit den Problemen und Pfaden in das Schema hinein, etwa bei
"type": "strng". Die Daten werden erst geprüft, wenn das Schema stimmt. Ein Muster, das kein gültiger regulärer Ausdruck ist, zeigt „Das Schema ließ sich nicht verwenden“.
Grenzen und Datenschutz
- Jedes Feld nimmt bis zu 5.000.000 Zeichen. Darüber bittet dich das Ergebnis, ein kleineres Stück einzufügen.
- Die ersten 100 Fehler werden aufgelistet; die Gesamtzahl wird immer gezählt.
- Nur JSON: YAML und ganze OpenAPI-Dateien musst du vorher umwandeln. Das Tool validiert; es erzeugt kein Schema aus Daten und korrigiert deine Daten nicht.
- Zahlen werden wie in
JSON.parsegelesen: Ganzzahlen über 9.007.199.254.740.991 verlieren an Genauigkeit, bevor sie geprüft werden. - Dein Schema und deine Daten werden in deinem Browser geprüft. Es wird nichts hochgeladen oder gespeichert.
Häufige Fragen
Wie funktioniert ein JSON Schema Validator online?
Füge das Schema in das Feld „JSON-Schema“ und die zu prüfenden Daten in das Feld „JSON-Daten“ ein. Das Ergebnis erscheint sofort beim Einfügen oder etwa 300 Millisekunden, nachdem du aufgehört hast zu tippen. Ein grünes „Gültig“ heißt, die Daten passen. Ein rotes „Ungültig“ listet jeden Fehler mit Pfad und Grund. Eine Taste musst du nicht drücken.
Welche JSON-Schema-Versionen werden unterstützt: draft-07, 2019-09 oder 2020-12?
Alle drei. Die Version stammt aus der Zeile „$schema“ deines Schemas. Ein Schema ohne „$schema“ wird als 2020-12 geprüft, bei älterer Syntax wie einem items-Array als 2019-09. Schemas mit draft-04, draft-06 oder einer anderen $schema-Adresse meldet das Tool als nicht unterstützt.
Was bedeutet ein Pfad wie $.users[0].email?
Der Pfad nennt die Stelle des fehlerhaften Werts. $ ist die Wurzel deiner JSON-Daten, .users die Eigenschaft users, [0] das erste Element dieses Arrays (gezählt wird ab 0) und .email die Eigenschaft darin. Ein Pfad wie $.users[2].address.zip führt auf dieselbe Weise Schritt für Schritt zum Wert.
Warum wird eine fehlende Pflichteigenschaft am übergeordneten Objekt gemeldet?
Weil es die Eigenschaft nicht gibt und deshalb nichts da ist, auf das der Pfad zeigen könnte. Der Fehler steht am Pfad des Objekts, das sie enthalten sollte, zum Beispiel $.users[0], mit dem Grund „Pflichteigenschaft „email“ fehlt.“ Ergänze die Eigenschaft in diesem Objekt, dann verschwindet der Fehler.
Wie verbiete ich zusätzliche Eigenschaften (additionalproperties false)?
Schalte „Strikter Modus“ ein. Er ergänzt unevaluatedProperties: false im Wurzelschema und in jedem Schema einer Eigenschaft oder eines Elements, das ein Objekt beschreibt. Jede Eigenschaft, die das Schema nicht aufführt, schlägt dann mit „Unerwartete Eigenschaft“ fehl. Ein Schema, das additionalProperties oder unevaluatedProperties schon selbst setzt, behält seine Wahl.
Werden Formate wie email, date-time, uri und uuid geprüft?
Ja. Das Schlüsselwort „format“ wird geprüft, daher besteht eine Adresse wie ana@ bei „format“: „email“ nicht und zeigt „Muss dem Format „email“ entsprechen.“ Abgedeckt sind die gängigen Formate, darunter email, date, date-time, time, uri, uuid, ipv4, ipv6 und hostname.
Kann das Tool einem $ref auf eine andere Datei oder eine URL folgen?
Nur innerhalb desselben Schemas, etwa #/$defs/name oder #/definitions/name. Es wird nichts heruntergeladen, deshalb meldet das Tool einen Verweis wie https://example.com/address.json als Verweis, den das Schema nicht definiert. Kopiere das referenzierte Schema in dein $defs und richte den $ref dorthin.
Was bedeutet „Das Schema selbst ist nicht gültig“?
Das Schema verstößt gegen die Regeln von JSON Schema, zum Beispiel mit „type“: „strng“ oder einem „minimum“ als Text. Das Ergebnis listet die Probleme mit Pfaden in das Schema hinein auf. Die Daten werden erst geprüft, wenn das Schema korrigiert ist.
Werden mein Schema oder meine JSON-Daten irgendwohin hochgeladen?
Nein. Schema und Daten werden vollständig in deinem Browser geprüft. Es wird nichts hochgeladen oder gespeichert, und du brauchst kein Konto.
Empfohlen
-
Amazon Basics Laptopständer, klappbarBring den Bildschirm auf Augenhöhe, während du durch eine lange Fehlerliste scrollst.
-
Samsung 34" ViewFinity Ultrawide-MonitorSchema links, Payload rechts: so musst du nicht ständig zwischen Tabs wechseln.
-
Magnetisches Tischwhiteboard mit StiftenSkizziere den Vertrag und die fehlerhaften Felder, bevor du den Code anfasst.
Hilft, die Tools kostenlos zu halten. ✨
Symbolbilder. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.