Zum Inhalt springen

JSON-Schema-Validator

JSON Schema Validator

Validiert ein Dokument gegen ein JSON Schema und meldet jeden Fehler mit seinem Instanzpfad.

Validiert ein JSON-Dokument gegen ein JSON Schema, Draft 2020-12, vollständig im Browser. Es besteht alle 1.299 verpflichtenden Tests der offiziellen JSON-Schema-Test-Suite, und jeder Fehlschlag wird mit dem Ort in der Instanz und dem Schlüsselwort gemeldet, das ihn ausgelöst hat.

🔒 Läuft vollständig in Ihrem Browserjson-schemavalidatejson

Schema (Draft 2020-12)

Zu prüfende Daten

Ergebnis

Urteil

Ungültig

Fehler

3

Ort in der InstanzSchlüsselwortProblem
/portmaximumdarf höchstens 65535 sein
/tagsuniqueItemsdie Elemente 0 und 1 sind gleich
/debugfalseist hier nie gültig (das Schema ist false)
Die Prüfung läuft vollständig in diesem Tab gegen JSON Schema Draft 2020-12 und besteht alle 1.299 Pflichttests der offiziellen JSON-Schema-Test-Suite. $ref wird innerhalb des Schemas, der eingefügten Zusatzdokumente und der mitgelieferten 2020-12-Meta-Schemata aufgelöst — entfernte Referenzen werden abgelehnt statt abgerufen, damit ein Urteil nie vom Netz abhängt. format wird als Annotation gemeldet und nicht erzwungen, was der Standard von 2020-12 ist.

So funktioniert es

  1. Fügen Sie das Schema und die Daten ein

    Beide Felder validieren neu, während Sie tippen. Ein Syntaxfehler in einem von beiden wird getrennt gemeldet, sodass Sie wissen, welche Seite kaputt ist.

  2. Fügen Sie referenzierte Dokumente hinzu, wenn Sie `$ref`s haben

    Schalten Sie Zusätzliche Schemas ein und fügen Sie sie ein – ein Dokument oder ein Array davon, jedes mit seiner `$id`. Nichts wird über das Netzwerk abgerufen, sodass ein über Dateien verteiltes Schema hier trotzdem validiert.

  3. Lesen Sie die Fehlertabelle

    Jede Zeile nennt den Instanzpfad, das gescheiterte Schlüsselwort und was es wollte. Kopieren Sie den ganzen Satz als JSON, wenn Sie ihn in ein Issue einfügen.

Häufige Fragen

Warum wird mein `"format": "email"` nicht durchgesetzt?

Weil 2020-12 `format` standardmäßig zu einer Annotation macht – ein Validator darf es melden und darf es nicht prüfen, und die meisten tun genau das. Wenn Sie es durchgesetzt brauchen, verwenden Sie `pattern` oder einen Validator, der mit dem Format-Assertion-Vokabular konfiguriert ist.

Ein entferntes `$ref` konnte nicht aufgelöst werden.

Entfernte Referenzen werden verweigert, nicht abgerufen. Ein Validator, der ins Netzwerk greift, liefert Ergebnisse, die von DNS und der Verfügbarkeit von jemand anderem abhängen, und er verrät diesem jemand, welche Schemas Sie validieren. Fügen Sie das referenzierte Dokument stattdessen in das Feld für zusätzliche Schemas ein.

Welche Drafts werden unterstützt?

2020-12. Ein Draft-07-Schema validiert oft trotzdem – die meisten Schlüsselwörter sind unverändert –, aber `definitions` ist nicht `$defs`, `items` bedeutet bei Tupeln etwas anderes, und `$recursiveRef` ist weg. Prüfen Sie die `$schema`-Zeile, bevor Sie etwas annehmen.

Warum so viele Fehler für ein falsches Feld?

Weil ein Fehlschlag innerhalb von `anyOf`, `oneOf` oder `allOf` jeden gescheiterten Zweig meldet – das ist, was die Spezifikation für eine Ausgabeeinheit vorsieht. Die erste Zeile ist meist die, die Sie wollen; die übrigen erklären, warum auch keine Alternative gepasst hat.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.