DokumenteBilderMedienPDF-Werkzeuge

JSON-Schema-Generator Online

Generiere JSON Schema aus beliebigem JSON. Perfekt für API-Validierung und Dokumentation.

Processed in your browser

APIs automatisch dokumentiert und validiert

Draft 2020-12

Generiert Schemas, die mit dem neuesten IETF-Standard und OpenAPI 3.1 kompatibel sind.

Privat

Dein JSON wird im Browser verarbeitet. Es wird niemals an einen Server gesendet.

Abgeleitete Typen

Erkennt automatisch Strings, Zahlen, Booleans, Arrays und verschachtelte Objekte.

Sofortig

Schema in Millisekunden generiert. Keine Anmeldung, kein Warten.

Drei Schritte, kein Aufwand

1

Füge dein JSON ein

Füge ein beliebiges gültiges JSON-Objekt ein. Der Generator analysiert die Struktur und Typen jedes Felds.

2

Überprüfe das generierte Schema

Das JSON Schema erscheint mit abgeleiteten Typen, Pflichtfeldern und optionalen Beschreibungen.

3

Kopiere oder lade das Schema herunter

Verwende das Schema in deiner API, deinem Validator (ajv, zod) oder deiner OpenAPI-Dokumentation. Mit einem Klick kopieren.

Noch Fragen?

JSON Schema ist ein Vokabular zum Annotieren und Validieren von JSON-Dokumenten, definiert als IETF-Entwurf. Es beschreibt die erwartete Struktur eines JSON-Dokuments: welche Eigenschaften es haben soll, deren Typen (string, number, array, object), welche Pflichtfelder sind, gültige Wertebereiche, Regex-Muster für Strings und mehr. Es ist der De-facto-Standard zur Dokumentation und Validierung von REST-APIs, Datenverträgen und Anwendungskonfigurationen.

Die neueste Version ist JSON Schema Draft 2020-12, veröffentlicht im Dezember 2020. Sie führt Verbesserungen bei $ref ein (jetzt kombinierbar mit anderen Schlüsselwörtern), prefixItems für Tupel-Arrays und das Vokabular unevaluatedProperties. Für Kompatibilität mit älteren Werkzeugen wird Draft-07 weiterhin häufig eingesetzt. OpenAPI 3.1 übernimmt JSON Schema Draft 2020-12 als Teilmenge – wer OpenAPI 3.1 verwendet, sollte 2020-12 nutzen.

In JSON Schema ist das Schlüsselwort required ein Array von Strings mit den Namen der Eigenschaften, die im Objekt vorhanden sein müssen. Eine in properties definierte Eigenschaft, die nicht in required aufgeführt ist, ist implizit optional: Sie kann vorhanden oder abwesend sein, ohne die Validierung zu beeinflussen. Die Unterscheidung ist für APIs entscheidend: Ein fehlendes Pflichtfeld in einer Anfrage sollte einen 400-Fehler zurückgeben, während ein fehlendes optionales Feld einfach den Standardwert verwendet.

Für Arrays von Objekten verwendest du den Typ array mit items, das auf das Schema des enthaltenen Objekts zeigt. Zum Beispiel: { type: array, items: { type: object, properties: { ... } } }. Du kannst auch minItems und maxItems definieren, um die Array-Länge zu steuern, sowie uniqueItems: true, um Duplikate auszuschließen. Für Arrays fester Länge mit heterogenen Typen verwendest du prefixItems (Draft 2020-12) oder items als Array (Draft-07).

$ref ist ein JSON-Schema-Schlüsselwort, das ein anderes Schema per URI referenziert und wiederverwendbare Definitionen ermöglicht. Es wird zusammen mit $defs (Draft 2020-12) oder definitions (Draft-07) verwendet, um Wiederholungen zu vermeiden. Zum Beispiel kann ein einmal definiertes Address-Schema sowohl von billingAddress als auch von shippingAddress referenziert werden. Das reduziert Redundanz, vereinfacht die Wartung und ist für OpenAPI-Schemas mit gemeinsam genutzten Modellen über mehrere Endpunkte hinweg unverzichtbar.

Geschichte von JSON Schema und das Validierungsökosystem

JSON Schema wurde 2009 von Kris Zyp als informelle Spezifikation im SitePen-Blog vorgeschlagen. Die erste formale Version als IETF-Entwurf war Draft-00 im Jahr 2010. Seitdem gab es mehrere Überarbeitungen (Draft-01 bis Draft-07, dann 2019-09 und 2020-12), ohne dass ein offizieller RFC entstanden ist – obwohl es als De-facto-Standard weit verbreitet ist. Der IETF-Standardisierungsprozess erfordert Referenzimplementierungen und Interoperabilitätstests, die die JSON-Schema-Community aktiv fertigstellt.

Die Integration von JSON Schema mit OpenAPI ist grundlegend in der modernen API-Entwicklung. OpenAPI 2.0 (Swagger) verwendete eine eingeschränkte Teilmenge von JSON Schema Draft-04. OpenAPI 3.0 verbesserte die Kompatibilität, behielt jedoch eigene Erweiterungen wie nullable bei. OpenAPI 3.1 übernahm vollständig JSON Schema Draft 2020-12 und beseitigte damit Abweichungen. Wichtige Validierungsbibliotheken sind ajv (Another JSON Schema Validator, JavaScript), jsonschema (Python), json-schema-validator (Java) und NJsonSchema (.NET).

Zod, TypeBox und Yup stellen eine Weiterentwicklung dar, bei der Schema und Validierung in TypeScript mit automatischer Typinferenz definiert werden und JSON Schema als Ausgabe erzeugen. Dieses Schema-First-Muster mit Typinferenz verdrängt die direkte Verwendung von JSON Schema in modernen TypeScript-Projekten, obwohl JSON Schema für sprachübergreifende Validierung, API-Verträge zwischen Teams mit unterschiedlichen Tech-Stacks und Ereignisdokumentation in ereignisgesteuerten Architekturen (AsyncAPI) unverzichtbar bleibt.