Zum Inhalt springen
ToolsMinify logo
Entwickler-Tools

JSON-Schema-Generator

Erzeugen Sie einen JSON-Schema-Entwurf aus einem JSON-Beispiel im Browser - ohne Konto, ohne Upload, ohne CLI.

Über JSON-Schema-Generator

Erzeugen Sie einen JSON-Schema-Entwurf aus einem JSON-Beispiel im Browser - ohne Konto, ohne Upload, ohne CLI. Fuegen Sie eine API-Antwort oder besser ein Array von Datensaetzen ein. Verschachtelte Objekte werden zu verschachtelten Schemas, Arrays werden aus jedem Element typisiert (nicht nur dem ersten), und fehlende Schluessel in manchen Eintraegen werden optional (nicht in required). JSON null wird zu einem nullable Typ statt mit optional vermischt zu werden. String-Formate werden inferiert, wenn Werte wie email, uri, uuid, date oder date-time aussehen. Waehlen Sie Draft-07 oder 2020-12 und kopieren oder laden Sie das Schema herunter. Kombinieren Sie es mit dem JSON-zu-TypeScript-Konverter fuer Interfaces aus derselben Probe oder dem JSON-Minifier, wenn die Nutzlast minifiziert ankam.

So verwenden Sie JSON-Schema-Generator

  1. JSON einfuegen (ein Array von Datensaetzen inferiert optionale Schluessel genauer als ein einzelnes Objekt). Laden Sie ein Beispiel, um optional vs. nullable zu sehen.
  2. Schema-Titel setzen und Draft-07 (Standard) oder 2020-12 waehlen. Entscheiden Sie, ob Objekte zusaetzliche Properties ablehnen oder erlauben.
  3. Inferenzbericht lesen: Properties, required, optional und Format-Hinweise. Warnungen markieren leere Arrays, leere Objekte, All-null-Felder und gemischte Unions.
  4. JSON Schema kopieren oder .schema.json herunterladen. Nutzen Sie es in AJV, OpenAPI-Entwuerfen oder CI-Validatoren.
  5. Nichts wird an einen Server gesendet. Ungueltiges JSON meldet Zeile und Spalte.

Beispiele für JSON-Schema-Generator

Optionaler Schluessel aus einem Array von Datensaetzen

[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] wird zu einem Array-Schema, dessen items sku und qty verlangen, waehrend gift optional ist (nicht in required).

Nullable vs. optional

Zwei Benutzer, bei denen email in einer Zeile fehlt und note in der anderen null ist, ergeben email als optionale string und note als type ["string","null"]. Fehlende Schluessel und JSON null bleiben getrennt.

String-Format-Hinweise

Werte, die wie E-Mails, https-URLs, UUIDs, ISO-Daten oder date-times aussehen, erhalten format: email, uri, uuid, date oder date-time.

Leere Container

{"items":[],"meta":{}} typisiert items als Array mit leerem items-Schema und meta als Objekt ohne properties. Warnungen bitten um eine reichere Probe.

Draft-07 vs. 2020-12

Beide Entwuerfe teilen dieselbe inferierte Form. Draft-07 nutzt die klassische $schema-URI, die die meisten Tools noch erwarten. Wechseln Sie zu 2020-12, wenn Ihr Stack diesen Dialekt dokumentiert.

Häufige Anwendungsfälle

  • JSON-Schema-Entwurf, bevor OpenAPI / AsyncAPI existiert
  • Webhook-Nutzlasten (Stripe, GitHub, Slack) in CI mit AJV validieren
  • Fixture in einen Vertrag fuer Contract-Tests verwandeln
  • Schemas fuer Configs und Feature-Flags anstossen
  • Mit TypeScript-Interfaces aus demselben JSON-Beispiel kombinieren

Häufig gestellte Fragen zu JSON-Schema-Generator

Wie generiere ich ein JSON Schema aus Beispiel-JSON?
Fuegen Sie ein JSON-Beispiel ein, setzen Sie einen Titel, waehlen Sie einen Draft und kopieren Sie das Schema. Die Generierung laeuft im Browser. Verschachtelte Objekte und Arrays werden vollstaendig durchlaufen, und in manchen Array-Eintraegen fehlende Schluessel werden aus required weggelassen.
Was ist der Unterschied zwischen optional und nullable?
Optional bedeutet, dass der Schluessel in manchen Array-Eintraegen fehlte und daher nicht in required steht. Nullable bedeutet, dass der Schluessel vorhanden war und der Wert JSON null war, daher enthaelt der Typ null (z. B. type: ["string","null"]). Dieser Generator vermischt beides nicht, es sei denn, die Probe zeigte beides.
Welchen JSON-Schema-Entwurf sollte ich verwenden?
Draft-07 ist weiterhin am weitesten von Validatoren und Editoren unterstuetzt. Nutzen Sie 2020-12, wenn Ihr Tooling diese $schema-URI erwartet. Die inferierten Properties sind in beiden Faellen gleich.
Warum sind items oder properties leer?
Leere Arrays haben keine Elemente zum Pruefen, daher ist items {}. Leere Objekte haben keine Schluessel, daher ist properties leer. Fuegen Sie ein gefuelltes Beispiel ein, um konkrete Typen zu erhalten.
Sind String-Formate immer korrekt?
Formate sind Heuristiken aus den Beispielwerten (email, uri, uuid, date, date-time). Pruefen Sie sie, bevor Sie einen Produktionsvertrag festschreiben.
Wird mein JSON hochgeladen?
Nein. Die Schema-Generierung laeuft nur in diesem Tab. Die Probe verlaesst Ihren Browser nicht.
Worin unterscheidet es sich vom JSON-zu-TypeScript-Konverter?
Beide durchlaufen dieselbe Art von Probe. Diese Seite emittiert JSON Schema fuer Validatoren und OpenAPI-Entwuerfe. Der TypeScript-Konverter emittiert Interfaces oder Type-Aliases fuer Anwendungscode. Nutzen Sie beides aus derselben Nutzlast, wenn Sie Vertrag und typisierte Clients brauchen.
Lehnt additionalProperties: false unbekannte Schluessel ab?
Ja, wenn Extras ablehnen aktiv bleibt. Nuetzlich fuer strenge API-Vertraege. Wechseln Sie zu Extras erlauben, wenn Clients Felder senden koennen, die Sie in der Probe noch nicht gesehen haben.