JSON gegen ein JSON Schema prüfen (2020-12, 2019-09, draft 7), mit genauer Fehlerposition
Läuft in Ihrem Browser. Nichts, was Sie eingeben, wird irgendwohin gesendet. Geprüft am 16. Oktober 2026.Ein JSON-Schema-Validator prüft, ob ein JSON-Dokument die Form hat, die ein Schema beschreibt: die richtigen Typen, die Pflichteigenschaften, Werte innerhalb der Grenzen und keine unerwarteten Schlüssel. Dieser unterstützt die Drafts 2020-12, 2019-09, 7, 6 und 4, besteht 1.652 Fälle der offiziellen Testsuite und zeigt jeden fehlerhaften Wert mit Pfad und Zeile.
Diese Seite wurde maschinell aus dem englischen Original übersetzt. Die Übersetzung wurde noch von keinem Menschen geprüft; maßgeblich ist die englische Fassung. Englisches Original lesen
Fügen Sie das Schema in den Bereich Schema und das JSON in den Bereich Daten ein oder klicken Sie auf Beispiel ausprobieren.
Lesen Sie das Ergebnis: Gültig oder eine Liste von Fehlern, jeweils mit dem Pfad des Werts und dem Problem.
Klicken Sie auf einen Fehler, um den Cursor auf diesen Wert im Bereich Daten zu setzen, korrigieren Sie ihn, und die Liste aktualisiert sich während der Eingabe.
Schalten Sie Formate prüfen ein, um zusätzlich E-Mail, Datum-Uhrzeit, URI und die anderen gängigen Formate zu testen.
JSON Schema ist der Standard, um zu beschreiben, wie gültiges JSON aussieht. Es wird von OpenAPI, Formular-Buildern, Konfigurationsdateien und Datenpipelines verwendet. Fügen Sie ein Schema und ein Dokument ein, und das Ergebnis aktualisiert sich während der Eingabe.
Was geprüft wird. Jede Assertion des Validierungsvokabulars: type, enum, const, Zahlengrenzen und multipleOf, Zeichenkettenlänge und pattern, Array-Länge, uniqueItems, contains, Objektgröße, required, dependentRequired sowie die Applikatoren properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not und if/then/else. Referenzen mit $ref folgen JSON-Pointern, $defs, definitions, $id und $anchor innerhalb des Schemas.
Welcher Draft. Der Draft ergibt sich aus $schema oder ist 2020-12, wenn das Schema keinen nennt, und Sie können ihn überschreiben. Die Unterschiede sind wichtig: In draft 7 prüft items mit einem Array jede Position, und Schlüsselwörter neben $ref werden ignoriert; in 2020-12 wandern die Positionen nach prefixItems, und $ref wird mit seinen Geschwistern kombiniert.
Formate. Seit 2019-09 ist format eine Annotation, keine Prüfung. Schalten Sie Formate prüfen ein, um email, date-time, date, time, uri, uuid, ipv4, ipv6 und hostname trotzdem zu testen, wie es die meisten erwarten.
Fehler, mit denen Sie arbeiten können. Jeder Fehler nennt den Pfad des fehlerhaften Werts, etwa /tags/1, seine Zeile im Bereich Daten und die verletzte Regel. Klicken Sie darauf, und der Cursor landet auf diesem Wert.
Was es nicht tut. unevaluatedProperties, unevaluatedItems und $dynamicRef werden nicht ausgewertet, und ein $ref auf ein Schema auf einem anderen Server wird nicht abgerufen. Die Seite weist darauf hin, sobald ein Schema eines davon verwendet, statt die Daten stillschweigend durchzulassen.
Schema erzeugen. Fügen Sie stattdessen ein Beispiel ein, und daraus wird ein Ausgangsschema geschrieben, das Sie weiter verschärfen können.
Der Validator wird gegen die offizielle JSON-Schema-Test-Suite getestet. Alles läuft in Ihrem Browser; nichts, was Sie einfügen, wird irgendwohin gesendet.
Fügen Sie das Schema in den Bereich Schema und das JSON-Dokument in den Bereich Daten ein. Das Ergebnis erscheint sofort: Gültig oder eine Liste von Fehlern, die jeweils den Pfad des fehlerhaften Werts nennen, etwa /items/2/price, und die verletzte Regel, etwa minimum 0. Korrigieren Sie die Daten oder das Schema, und die Liste aktualisiert sich während der Eingabe.
Verwenden Sie 2020-12 für neue Schemas: Es ist die aktuelle Spezifikation und wird von OpenAPI 3.1 verwendet. Draft 7 ist in älteren Tools und Bibliotheken weiterhin verbreitet. Geben Sie die Version in $schema an, zum Beispiel https://json-schema.org/draft/2020-12/schema, denn Array-Tupel, $ref und dependencies verhalten sich je nach Version unterschiedlich.
Wenn additionalProperties auf false gesetzt ist, wird jede Eigenschaft, die nicht in properties aufgeführt ist und nicht von patternProperties erfasst wird, zum Fehler. Ein Tippfehler wie emial statt email wird dann erkannt statt ignoriert. Eigenschaften, die über allOf in einem anderen Teilschema hinzugefügt werden, sind nicht sichtbar, was oft überrascht; führen Sie sie im selben Schema auf.
Seit 2019-09 ist das Schlüsselwort format standardmäßig nur eine Annotation, Validatoren müssen es also nicht prüfen. Schalten Sie hier Formate prüfen ein, um email, date-time, date, time, uri, uuid, ipv4, ipv6 und hostname zu testen. Im Code muss bei Bibliotheken wie Ajv die Formatprüfung ebenfalls gesondert eingeschaltet werden.
required nennt genau die Eigenschaften, die vorhanden sein müssen, etwa id und email, während minProperties sie nur zählt: minProperties 2 akzeptiert zwei beliebige Schlüssel. Eine Eigenschaft, die in properties, aber nicht in required steht, ist optional und muss, wenn sie vorhanden ist, trotzdem ihrem eigenen Schema entsprechen.
Ja. Wechseln Sie zu Schema erzeugen und fügen Sie ein Beispiel in den Bereich Daten ein: Es wird ein 2020-12-Schema geschrieben, in dem jede Eigenschaft typisiert ist und die in allen Datensätzen vorhandenen Schlüssel als required markiert sind. Ein Beispiel kann keine Grenzen, Formate oder erlaubten Werte zeigen, ergänzen Sie also minimum, format und enum von Hand, bevor Sie sich darauf verlassen.
Sätze und Regeln ändern sich; prüfen Sie die Quelle, bevor Sie sich auf eine Zahl verlassen.
Kommen Sie nicht weiter? Fragen Sie zu JSON-Schema-Validator und jeder, der es weiß, kann antworten. Kein Konto nötig.