Tool von Tool Kumar
JSON Schema generieren
Erstelle aus einem repräsentativen JSON-Dokument einen ersten Entwurf für ein JSON-Schema. Das Ergebnis beschreibt die vorgefundene Struktur und dient als Ausgangspunkt für die Validierung.
So verwendest du dieses Tool
- Füge ein Beispieldokument ein.
- Wähle in der Ansicht „Konvertieren“ die Option „JSON Schema“.
- Prüfe die abgeleiteten Eigenschaften und speichere das Schema.
Praxisbeispiel
Das Schema entsteht aus dem Beispielobjekt, einschließlich der verschachtelten Strukturen profile und tags. Jede Eigenschaft ist in diesem einen Objekt vorhanden und deshalb erforderlich.
Eingabe
{"name":"Ada","age":36,"active":true,"tags":["json","tools"],"profile":{"city":"London"}}Ausgabe
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"active": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"profile": {
"$ref": "#/$defs/Profile"
}
},
"required": ["name", "age", "active", "tags", "profile"],
"$defs": {
"Profile": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": ["city"]
}
}
}
Wie erforderliche Eigenschaften bestimmt werden
Wenn du aus mehreren Datensätzen ein Schema generierst, enthält die Liste required nur die Schlüssel, die jeder Datensatz hat. In diesem Beispiel haben beide Nutzer id und email, aber nur der erste hat phone. Deshalb wird phone beschrieben, ist aber nicht erforderlich.
Input:
[{"id":1,"email":"ada@example.com","phone":"+44 20 7946 0000"},{"id":2,"email":"lin@example.com"}]
Generated schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "array",
"items": {
"$ref": "#/$defs/RootItem"
},
"$defs": {
"RootItem": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string"
}
},
"required": ["id", "email"]
}
}
}Optionen und Sonderfälle
- Verschachtelte Objekte und Arrays werden rekursiv abgebildet.
- Eine Eigenschaft wird in required aufgeführt, wenn jedes untersuchte Objekt an dieser Position sie enthält. Ein einzelnes vollständiges Beispiel macht daher jede vorgefundene Eigenschaft erforderlich. Fehlt ein Schlüssel in einigen Objekten eines Arrays, wird er optional.
- Werte, die in einigen Objekten null sind, ergänzen den Eigenschaftstyp um null, statt die Eigenschaft optional zu machen.
- Die Ausgabe ist ein Ausgangspunkt. Prüfe required, ergänze Formate, Wertebereiche und Muster und entferne alles, was dein API-Vertrag nicht zusichert.
- Diese Seite generiert ein Schema. Sie validiert kein Dokument anhand eines Schemas. Prüfe vor dem Generieren die JSON-Syntax auf der Seite „JSON-Validator“.
Standardmäßig privat
Dein Dokument bleibt in diesem Browser. Tool Kumar parst und konvertiert Daten und erstellt Downloads auf deinem Gerät, ohne Konto und ohne Upload.
JSON Schema generieren: häufige Fragen
- Markiert der Generator jede Eigenschaft als erforderlich?
- Nur Eigenschaften, die jedes untersuchte Objekt enthält. Bei einem einzelnen vollständigen Beispiel werden alle enthaltenen Eigenschaften als erforderlich markiert. Fehlt ein Schlüssel in einigen Objekten eines Arrays, wird er optional. Prüfe die Liste required vor der Veröffentlichung des Schemas anhand deines API-Vertrags.
- Welchen Draft verwendet er?
- Die Ausgabe deklariert JSON Schema Draft 2020-12 mit den standardisierten Schlüsselwörtern type und properties.
- Kann er die Struktur von Array-Elementen ableiten?
- Ja. Bei Arrays aus Objekten entsteht ein items-Schema auf Basis der vorgefundenen Objektstruktur.
Verwandte Tools
JSON-Validator, JSON in TypeScript konvertieren und Zod-Schema aus JSON generieren.