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

So verwendest du JSON Schema Generator

  1. Wähle Generieren, um ein Schema zu bauen, oder Validieren, um ein Dokument zu prüfen.
  2. Füge im Generieren-Modus ein JSON-Beispiel ein und schalte required, additionalProperties und Format-Optionen um.
  3. Wähle draft-07 oder 2020-12 und kopiere oder lade dann das resultierende schema.json herunter.
  4. Füge im Validieren-Modus ein JSON Schema links und ein JSON-Dokument rechts ein.
  5. 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

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

Alle ArrayKit-Tools