JSON Schema Generator & Validator
Generiere ein JSON Schema aus einem Beispiel oder validiere ein JSON-Dokument dagegen, direkt in deinem Browser. Deine Daten verlassen dein Gerät nie.
Schema-Generierung und Ajv-Validierung laufen lokal in deinem Browser, sodass dein JSON-Beispiel, Schema und Dokument nie hochgeladen werden.
Brauchst du stattdessen TypeScript-Typen? Probiere JSON zu TypeScript.
Über JSON Schema Generator
Dieser JSON Schema Generator verwandelt ein JSON-Beispiel in ein einsatzbereites JSON Schema, und der eingebaute Validator prüft jedes JSON-Dokument gegen ein von dir bereitgestelltes Schema. Im Generieren-Modus durchläuft er dein Beispiel, leitet Typen für Objekte, Arrays, Strings, Zahlen, Booleans und null ab, vereinheitlicht Array-Elemente und kann jede Eigenschaft als required markieren, additionalProperties auf false setzen und String-Formate wie email, date, date-time, uri und uuid erkennen. Wähle draft-07 oder 2020-12 für die Ausgabe. Im Validieren-Modus führt er Ajv mit allErrors und ajv-formats aus und listet dann jeden Fehler mit seinem Instanzpfad und seiner Meldung auf. Es ist für API-Entwickler, Backend-Ingenieure und alle gemacht, die JSON-Verträge definieren oder testen. Alles läuft in deinem Browser, sodass das eingefügte Beispiel und Schema auf deinem Gerät bleiben.
Funktionen
- Leitet ein JSON Schema aus einem eingefügten JSON-Beispiel mit korrekten Typen für Objekte, Arrays, Strings, Zahlen, Integers, Booleans und null ab
- Vereinheitlicht Array-Elemente zu einem items-Schema und gibt items:{} für leere Arrays aus
- Schalter, um jede Eigenschaft pro Objekt als required zu markieren
- Schalter additionalProperties:false, um Objekte auf bekannte Schlüssel festzulegen
- Optionale String-Format-Erkennung für email-, date-, date-time-, uri- und uuid-Werte
- Wähle draft-07- oder 2020-12-Ausgabe, was den $schema-Dialekt festlegt
- Validiere jedes JSON-Dokument gegen ein Schema mit Ajv samt allErrors und ajv-formats
- Kopiere das generierte Schema oder lade es als schema.json herunter
So verwendest du JSON Schema Generator
- Wähle Generieren, um ein Schema zu bauen, oder Validieren, um ein Dokument zu prüfen.
- Füge im Generieren-Modus ein JSON-Beispiel ein und schalte required, additionalProperties und Format-Optionen um.
- Wähle draft-07 oder 2020-12 und kopiere oder lade dann das resultierende schema.json herunter.
- Füge im Validieren-Modus ein JSON Schema links und ein JSON-Dokument rechts ein.
- Lies das gültig/ungültig-Abzeichen und die Liste der Fehler, jeder mit einem Instanzpfad.
Beispiel
Eingabe
{
"id": 1,
"name": "Ada",
"email": "ada@example.com",
"tags": ["a", "b"]
}
Ausgabe
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["id", "name", "email", "tags"]
}
Mit aktivierter required- und Format-Erkennung ergibt das Beispiel ein draft-07-Schema.
Häufige Fehler & Fehlerbehebung
- Das generierte Schema hat kein required-Array, obwohl jeder Schlüssel vorhanden ist. — Aktiviere "Alle Eigenschaften als required markieren"; standardmäßig leitet der Generator nur Typen ab und lässt required leer, sodass optionale Felder nicht überbeschränkt werden.
- Die Validierung meldet "Invalid JSON Schema", bevor das Dokument geprüft wird. — Das Schema-Feld selbst muss ein gültiges JSON-Objekt sein, das Ajv kompilieren kann; korrigiere zuerst die JSON-Syntax oder unbekannte Schlüsselwörter im Schema.
- Ein Wert, der wie ein Datum aussieht, wird als einfacher String typisiert. — Aktiviere "String-Formate ableiten". Die Erkennung ist konservativ und fügt ein Format nur hinzu, wenn der Beispielwert dem email-, date-, date-time-, uri- oder uuid-Muster entspricht.
- Ein 2020-12-Schema wird von einem Validator abgelehnt, der draft-07 erwartet. — Stelle den Draft-Wähler auf dein Ziel um. Er ändert nur die $schema-URL und die kleineren Dialektunterschiede zwischen den beiden Drafts.
Häufig gestellte Fragen
- Welchen JSON-Schema-Draft nutzt der Generator?
- Standardmäßig draft-07, mit einer Option für 2020-12. Die Wahl legt die $schema-Dialekt-URL der Ausgabe und die kleineren Unterschiede zwischen den Drafts fest; die abgeleitete Struktur ist ansonsten gleich.
- Wie werden required-Eigenschaften beim Generieren eines Schemas entschieden?
- Standardmäßig wird keine Eigenschaft als required markiert, sodass das Schema partielle Objekte akzeptiert. Aktiviere "Alle Eigenschaften als required markieren", um jeden Schlüssel jedes Objekts zu seinem required-Array hinzuzufügen.
- Wie meldet der Validator Fehler?
- Er führt Ajv mit aktiviertem allErrors aus, sodass du jeden Fehler auf einmal erhältst. Jeder Fehler zeigt den JSON-Instanzpfad (etwa /items/0/id) und eine menschenlesbare Meldung, einschließlich fehlender required-Schlüssel und unerwarteter zusätzlicher Eigenschaften.
- Leitet der Generator String-Formate wie email oder date ab?
- Ja, wenn "String-Formate ableiten" aktiviert ist. Er prüft Beispiel-String-Werte gegen Muster für email, date, date-time, uri und uuid und fügt das passende format-Schlüsselwort hinzu; Werte, die keinem entsprechen, bleiben einfache Strings.
- Wie leitet er das Schema für Arrays ab?
- Er führt die Schemata aller Array-Elemente zu einem einzigen items-Schema zusammen. Gemischte Objekt-Elemente werden Eigenschaft für Eigenschaft zusammengeführt, ein Schlüssel, der in einem Element fehlt, fällt aus required heraus, und ein leeres Array wird zu items:{}.
- Wird mein JSON-Beispiel oder Schema irgendwohin hochgeladen?
- Nein. Generierung und Validierung, einschließlich Ajv, laufen vollständig in deinem Browser, sodass das eingefügte Beispiel, Schema und Dokument lokal verarbeitet werden und auf deinem Gerät bleiben.
Verwandte Tools
- JSON-Formatierer — JSON verschönern, minimieren und validieren – mit Fehlerposition.
- JSON zu TypeScript — Erzeuge TypeScript-Interfaces aus einer JSON-Probe.
- JSON-Viewer — Text- und einklappbare Baumansicht mit Ein-/Ausklappen und Knotenpfaden.
- JSON Diff — Vergleiche zwei JSON-Dokumente und sieh einen strukturellen Diff.
- JSON zu Code — Erzeuge Typen für Go, Rust, Python, Java, Kotlin, C# und TypeScript aus JSON.
- OpenAPI-/Swagger-Formatierer — Formatiere und validiere OpenAPI-/Swagger-Spezifikationen (JSON oder YAML) und zähle Pfade und Operationen.
Alle ArrayKit-Tools