Zum Hauptinhalt springen

JSON-Schema generieren

Der JSON-Schema-Generator leitet automatisch standardkonforme JSON-Schema-Spezifikationen (Draft 2020-12) aus einem oder mehreren JSON-Beispielpayloads ab. Er bietet konfigurierbare Heuristiken für Pflichtfelder, Typerweiterung über heterogene Beispiele hinweg, automatische Formaterkennung (email, date-time, uuid, uri), Enum-Erkennung sowie Live-Validierung von Dokumenten gegen das abgeleitete Schema auf derselben Seite.

Nur lokal
Beispieleingabe (Objekt oder Array mit Beispielen)
0 B1 ZeileZ. 1, Sp. 1
Generiertes JSON Schema (Draft 2020-12)schreibgeschützt
0 B1 Zeile

✓Validierungstest mit Rückprüfung

JSON-Dokumente in Echtzeit gegen das erzeugte Schema prüfen.

Zu prüfendes Dokument
0 B1 ZeileZ. 1, Sp. 1
Bericht zur Schemakonformität
Kein Schema für die Validierung erzeugt.

Wie funktioniert JSON-Schema generieren?

JSON-Schema-Definitionen von Hand zu schreiben ist repetitiv, wortreich und fehleranfällig. Die Schema-Inferenz-Engine von ToolsByUs automatisiert das, indem sie mehrstufige strukturelle Aggregation über Ihre Eingabebeispiele hinweg durchführt:

  • Typinferenz & -erweiterung: Untersucht Datenwerte rekursiv. Treten für denselben Schlüssel über die Beispiele hinweg unterschiedliche skalare Typen auf (etwa integer und string), erzeugt die Typerweiterung ein Array erlaubter Typen type: ["integer", "string"], statt gültige Variationen zu verwerfen.
  • Heuristiken für Pflichtfelder: Berechnet Häufigkeitsquoten. Eigenschaften, die in 100% der analysierten Beispieldatensätze vorhanden sind, werden im required-Constraint-Array katalogisiert.
  • Format- & semantisches Matching: Gleicht String-Felder mit den RFC-Standards ab für date-time (ISO 8601), email (RFC 5322), uuid (RFC 4122/9562) und uri (RFC 3986).
  • Enum-Extraktion: Erkennt sich wiederholende Werte mit niedriger Kardinalität unterhalb einer einstellbaren Schwelle (etwa Status-Felder) und erzeugt strenge enum-Mengen.

Vor allem aber enthält der Generator einen interaktiven Round-Trip-Validator: Sie können eine beliebige Kandidaten-Payload einfügen und sie sofort gegen das erzeugte Schema testen, um die Konformität zu verifizieren.

Beispielpayload-Eingabe

{"id": "usr_101", "email": "[email protected]", "active": true}

Beispielausgabe

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["id", "email", "active"],
  "properties": {
    "id": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" }
  }
}

Welche Optionen und Sonderfälle unterstützt JSON-Schema generieren?

Technische Referenz und Optionen
ParameterTypStandardVerhalten & Sonderfälle
inferRequiredBooleantrueMarkiert Eigenschaften, die in allen bereitgestellten Beispielen vorkommen, automatisch als erforderlich.
typeWideningBooleantrueErlaubt Feldern mit mehreren beobachteten Typen, einen dieser Typen zu unterstützen, anstatt einen festzulegen.
detectFormatsBooleantrueÜberprüft Zeichenfolgenmuster auf RFC-Formate: E-Mail, Datum-Uhrzeit, UUID und URI.
enumThresholdInteger4Maximale Anzahl eindeutiger Werte, um eine Zeichenfolgen-/Zahleneigenschaft als feste Enum-Menge zu klassifizieren.
Schema DraftStandardDraft 2020-12Erzeugt moderne, voll kompatible JSON-Spezifikation Draft 2020-12.

Häufig gestellte Fragen

Welche JSON-Schema-Version erzeugt dieses Tool?

Dieses Tool gibt JSON Schema Draft 2020-12 aus, die neueste stabile Spezifikation, die die JSON-Schema-Organisation empfiehlt. Es ist kompatibel mit modernen Validierungsbibliotheken in Python, Node.js, Go, Rust und Java.

Kann ich mehrere Beispieldokumente angeben?

Ja! Sie können entweder ein einzelnes JSON-Objekt oder ein JSON-Array mit mehreren Objekten einfügen. Der Generator aggregiert die Eigenschaftsformen über alle Beispiele hinweg und erzeugt so umfassende Schemas mit Union-Typen und genauen Pflichtfeld-Heuristiken.

Wie funktioniert die Live-Validierung?

Das untere Feld führt einen Echtzeit-Schema-Validator über das jeweils aktuell erzeugte Schema aus. Sobald Sie oben Beispieldaten oder Optionen ändern, wird das Testdokument sofort validiert, mit exakten Verletzungspfaden und Keywords angezeigt.

Werden mein Beispielschema oder meine Daten an einen Server übertragen?

Nein. Die gesamte Schema-Inferenz und Validierung läuft zu 100% lokal in Ihrem Browser, ohne eine einzige Netzwerkanfrage, und wahrt so die vollständige Privatsphäre bei proprietären Schemas und Produktions-Logs.

Warum wird ein Feld als required markiert, obwohl meine API es als optional behandelt?

Weil die Inferenz nur die Beispiele sehen kann, die Sie ihr gegeben haben, und eine Eigenschaft, die in jedem Beispiel vorkommt, als Pflichtfeld angenommen wird. Fügen Sie ein Array von Dokumenten ein, das auch die Fälle enthält, in denen das Feld wirklich fehlt, und es fällt automatisch aus der required-Liste heraus – das ist der schnellste Weg, dem Generator beizubringen, welche Felder optional sind.

Kann ich statt eines Schemas TypeScript-Typen bekommen?

Ja, mit einem anderen Tool: Der JSON-zu-TypeScript-Konverter nimmt dasselbe Beispieldokument und gibt direkt Interfaces aus. Ein Schema ist das bessere Artefakt, wenn Sie Laufzeitvalidierung über mehrere Sprachen hinweg wollen; erzeugte Typen sind besser, wenn der einzige Konsument eine TypeScript-Codebasis ist und die Prüfung zur Kompilierzeit passiert.