So funktioniert es
- Fügen Sie ein JSON-Beispiel ein oder klicken Sie auf „Beispiel laden“.
- Legen Sie den Titel des Wurzelschemas fest.
- Kopieren Sie das Schema oder laden Sie es herunter und ergänzen Sie dann Einschränkungen wie Formate, Muster und Wertebereiche.
Optionen erklärt
- Name des Wurzeltyps
- Wird als title des Schemas verwendet.
Beispiele
Aus {"id": 1, "email": null} wird ein Schema mit "id": {"type": "integer"}, "email": {"type": "null"} und beiden Schlüsseln in required.
Beispiel
Zwei Benutzerdatensätze, von denen nur der erste eine E-Mail hat und manager manchmal null ist:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
Mit dem Namen des Wurzeltyps User lautet das erzeugte Schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email fehlt in required, weil der zweite Datensatz sie nicht hat, und manager akzeptiert entweder null oder ein Objekt, weil beides in den Beispieldaten vorkommt. Je abwechslungsreicher Ihre Beispieldaten sind, desto genauer wird das Schema – fügen Sie mehrere Datensätze statt nur einen ein.
Häufige Anwendungen
API-Eingaben validieren. Laden Sie das Schema in einen Validator wie Ajv (JavaScript) oder jsonschema (Python) und lehnen Sie Anfragen ab, die nicht passen.
Eine API dokumentieren. Fügen Sie die Eigenschaften als Ausgangspunkt in einen OpenAPI-Abschnitt components.schemas ein.
Autovervollständigung im Editor. VS Code und JetBrains-IDEs können ein JSON Schema nutzen, um Schlüssel vorzuschlagen und Fehler in JSON-Konfigurationsdateien zu markieren.
Häufig gestellte Fragen
Welche Schlüssel werden als Pflicht (required) markiert?
Schlüssel, die in jedem Beispielobjekt vorkommen. Enthält ein Array Objekte mit unterschiedlichen Schlüsseln, werden Schlüssel, die in manchen Elementen fehlen, nicht in required aufgenommen.
Kann ich es mit OpenAPI verwenden?
OpenAPI 3.1 nutzt JSON Schema 2020-12, daher passt das erzeugte Schema unter components/schemas. Für OpenAPI 3.0 ersetzen Sie Typ-Arrays wie ["string", "null"] durch nullable true.
Erkennt es Formate wie E-Mail oder date-time?
Nein. Es leitet nur Typen ab. Ergänzen Sie format, pattern, minimum und ähnliche Schlüsselwörter bei Bedarf von Hand.
Wird mein JSON hochgeladen?
Nein. Die Typen werden in Ihrem Browser erzeugt, sodass API-Antworten mit echten Daten auf Ihrem Gerät bleiben.
Datenschutz
Dieses Tool läuft vollständig in Ihrem Browser. Ihre Dateien und Texte werden auf Ihrem Gerät verarbeitet und nie auf unsere Server hochgeladen.