Zum Hauptinhalt springen
Bethemesh

JSON Schema erzeugen

Analysiere ein JSON-Dokument und leite Typen, Eigenschaften, Arrays und Pflichtfelder automatisch ab.

  • Zwischenablage
  • Export
Automatisieren

Dieses Widget einbetten

Passe die Darstellung an, prüfe die Vorschau und kopiere anschließend den Code.

Vorschau

Art des Einbettungscodes

Zu kopierender Code

Responsive und automatisch von Bethemesh in der Größe angepasst.

War dieses Werkzeug hilfreich?

Wie funktioniert dieses Tool?

Entwirf JSON Schema aus einem repräsentativen JSON-Dokument. Der Generator erkennt Typen, verschachtelte Objekte, Listen und beobachtete Eigenschaften und erzeugt eine wiederverwendbare Struktur für Draft 2020-12. Das Ergebnis ist ein zu prüfender Vorschlag, keine automatische Entdeckung aller API-Regeln. Kein Dokument wird an einen Ableitungsdienst gesendet: Dein Browser analysiert das Beispiel und zeigt ein JSON-Schema zum Prüfen, Kopieren oder Exportieren.

Zeichenketten werden zu string, boolesche Werte zu boolean und null zu null. Beobachtete Ganzzahlen werden von anderen Zahlen unterschieden. Objekte erzeugen properties; Arrays leiten items aus allen Einträgen ab, nicht nur aus dem ersten. Typvarianten können mit anyOf beschrieben werden.

Eigenschaften werden über Objekte desselben Arrays zusammengeführt. Fehlt ein Schlüssel in einigen Objekten, steht er nicht in required; durchgehend vorhandene Schlüssel werden aufgenommen. Das zeigt nur Beispiele. Enthält eine einzige Antwort ein eigentlich optionales Feld, kann der Generator dessen mögliche Abwesenheit nicht erkennen.

Generierte Objekte verwenden additionalProperties: false. Unbeobachtete Schlüssel werden dadurch abgelehnt, selbst wenn deine Anwendung sie akzeptieren würde. Prüfe diese Regel vor zukünftigen Antworten. Ein leeres Array verrät keine künftigen Elementtypen; deren Schema bleibt daher offen, statt einen Typ zu erfinden.

Die Ableitung erfindet keine E-Mail-Formate, Regex-Regeln, Zahlenbereiche oder vollständigen Wertelisten. Ein Datum bleibt eine Zeichenkette. Der Wert 1 beweist weder minimum: 1 noch const: 1. Zahlen verwenden die Browserdarstellung. Erhalte große Kennungen als Zeichenketten, wenn dein Vertrag diese Darstellung vorsieht.

Ein abgeleitetes Schema beschreibt nur die vorliegenden Beispiele. Fehlt darin ein optionales Feld vollständig, kann der Generator es nicht erfinden. Ergänze solche Eigenschaften nach dem fachlichen Vertrag und prüfe anschließend sowohl gültige als auch bewusst ungültige Dokumente.

So verwenden Sie dieses Tool

  1. Nützliches Beispiel auswählen

    Füge gültiges JSON mit vollständiger Struktur ein. Anonymisierte Varianten helfen mehr als große Mengen gleichartiger Werte.

  2. Eigenschaften erzeugen und kontrollieren

    Prüfe Typen, required und geschlossene Objekte. Ein null-Wert unterscheidet sich von einer fehlenden Eigenschaft.

  3. Vertrag ergänzen und testen

    Füge belegte Formate und Grenzen hinzu. Teste gültige und ungültige Daten vor der Integration. Downloads enthalten JSON Schema, kein TypeScript-Modul.

Anwendungsfälle

Datenvertrag entwerfen

Beginne mit API-Antwort oder Austauschdatei und vergleiche die Struktur mit der Fachdokumentation. Ergänze Bedingungen, die das Beispiel nicht belegen kann.

Arrayvarianten erkennen

Nutze fehlende und vorhandene Felder sowie null, um Pflichtfelder von erlaubten Typen zu trennen. Unterschiedliche Beispiele ergeben eine bessere Ausgangsbasis.

Wiederverwendbare Validierung vorbereiten

Verwende einen Validator, der Draft und Schlüsselwörter unterstützt. Die Generierung installiert keine automatische Prüfung in deiner Anwendung.

Beispiele

Objekt mit Ganzzahl und booleschem Wert ableiten

id wird integer und active boolean. Beide sind aufgrund ihrer Anwesenheit erforderlich; additionalProperties lehnt weitere Schlüssel ab.

Eingabe

{"id":1,"active":true}

Ergebnis

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

Alle Arrayeinträge berücksichtigen

id steht in beiden Objekten und bleibt erforderlich. name steht nur im zweiten Objekt und ist daher bekannt, aber optional.

Eingabe

[{"id":1},{"id":2,"name":"Ada"}]

Ergebnis

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer"
      },
      "name": {
        "type": "string"
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  }
}

Tipps und bewährte Vorgehensweisen

  • Mache aus einem beobachteten Wert ohne weitere Belege keine Fachkonstante. Ein Beispiel dokumentiert nicht sämtliche erlaubten Werte.
  • Teste eine Antwort mit neuem Feld, um additionalProperties: false gegen deine Kompatibilitätsregeln abzuwägen.
  • Halte fehlende Eigenschaften und null-Werte in getrennten Testfällen fest. Sie beschreiben unterschiedliche Regeln.
  • Nutze JSON in TypeScript für zusätzliche TypeScript-Interfaces oder Zod-Schemas, statt Strukturen manuell zu übertragen.

Quellen und Referenzen

Häufig gestellte Fragen

Wird nur der erste Arrayeintrag untersucht?

Nein. Alle bereitgestellten Einträge fließen ein. Objekteigenschaften werden zusammengeführt und beobachtete Auslassungen beeinflussen required. Unbekannte zukünftige Daten werden dadurch nicht vorhergesagt.

Warum ist ein optionales API-Feld hier erforderlich?

Es fehlte in keinem relevanten Beispiel. Entferne es gemäß dem echten Vertrag aus required oder ergänze ein repräsentatives Objekt ohne diesen Schlüssel.

Warum werden zusätzliche Felder abgelehnt?

Generierte Objekte sind mit additionalProperties: false geschlossen. Ändere das, wenn deine Regeln neue Eigenschaften erlauben. Entscheide bewusst vor der Validierung weiterentwickelter Daten.

Garantiert das Ergebnis die Gültigkeit aller Daten?

Nein. Es beschreibt beobachtete Formen und braucht fachliche Prüfung. Ergänze Bedingungen und nutze einen Validator, der den tatsächlichen Draft und die verwendeten Schlüsselwörter unterstützt.

Verwandte Werkzeuge

Werkzeuge, die diesem ähnlich sind oder es ergänzen.

Ähnliche Werkzeuge

Prüft JSON-Dokumente gegen ein JSON Schema und zeigt Fehler mit Pfad und Regel präzise an.

EntwicklungEmpfohlenDieses Werkzeug verwenden

Formatiere, komprimiere und prüfe JSON-Daten.

EntwicklungEmpfohlenDieses Werkzeug verwenden