Unterstützte Typen und JSON-Schemas
Auf dieser Seite
Die Bausteine Ihrer Schemas
Um die Struktur Ihrer Antworten zu definieren, stehen Ihnen sieben JSON-Typen zur Verfügung. Jeder erfüllt einen spezifischen Zweck beim Modellieren Ihrer Daten. Das Verständnis dieser Typen ist unerlässlich für das Entwurf effektiver Schemas.
Die sieben unterstützten Typen
string
Der häufigste Typ. Er wird für Namen, Beschreibungen, Identifikatoren und jeglichen Textinhalt verwendet.
{
"type": "object",
"properties": {
"name": { "type": "string" },
"description": { "type": "string" }
}
}
number
Umfasst ganze Zahlen und Gleitkommazahlen. Es gibt keine Unterscheidung zwischen integer und float – ein einziger number-Typ behandelt beide.
{
"properties": {
"price": { "type": "number" },
"quantity": { "type": "number" }
}
}
boolean
Wahr oder falsch. Ideal für Flags, Validierungen und binäre Entscheidungen.
{
"properties": {
"in_stock": { "type": "boolean" },
"express_delivery": { "type": "boolean" }
}
}
object
Ermöglicht das Verschachteln von Strukturen. Ein Objekt kann weitere Objekte, Arrays oder Skalare enthalten – ohne Tiefenlimit.
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"street": { "type": "string" },
"city": { "type": "string" },
"postal_code": { "type": "string" }
}
}
}
}
array
Listen von Elementen desselben Typs. Sie können Arrays aus Strings, Zahlen, Objekten oder sogar Arrays haben.
{
"properties": {
"skills": {
"type": "array",
"items": { "type": "string" }
}
}
}
enum
Eine endliche Menge erlaubter Werte. Wesentlich für Kategorisierungen und Klassifikationen.
{
"properties": {
"priority": {
"type": "string",
"enum": ["low", "medium", "high", "critical"]
}
}
}
anyOf
Ermöglicht die Definition von Typ-Vereinigungen. Ein Feld kann mehrere verschiedene Strukturen akzeptieren. Nützlich, wenn ein einzelnes Feld unterschiedliche Formen annehmen kann.
{
"properties": {
"contact": {
"anyOf": [
{
"type": "object",
"properties": {
"email": { "type": "string" }
}
},
{
"type": "object",
"properties": {
"phone": { "type": "string" }
}
}
]
}
}
}
Kombinieren von Typen
Die Stärke von Schemas ergibt sich aus der Kombination dieser Typen. Hier ist ein realistisches Schema zur Analyse eines Produkts:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"in_stock": { "type": "boolean" },
"category": {
"type": "string",
"enum": ["electronics", "clothing", "grocery", "other"]
},
"tags": {
"type": "array",
"items": { "type": "string" }
},
"manufacturer": {
"type": "object",
"properties": {
"name": { "type": "string" },
"country": { "type": "string" }
}
}
}
}
Dieses Schema mischt Skalare, ein Enum, ein Array und ein verschachteltes Objekt. Das Modell wird jede Einschränkung bei jedem Aufruf respektieren.
Optionale Felder
Um ein Feld optional zu machen, verwenden Sie anyOf mit null:
{
"properties": {
"phone": {
"anyOf": [
{ "type": "string" },
{ "type": "null" }
]
}
}
}
In Pydantic entspricht dies phone: str | None.
Wichtige Kernaussagen
- Sieben verfügbare Typen:
string,number,object,array,boolean,enum,anyOf - Typen können frei kombiniert werden, um komplexe Strukturen zu modellieren
- Optionale Felder verwenden
anyOfmitnull - Keine Unterscheidung zwischen Integer und Float – ein einziger
number-Typ enumerzwingt vordefinierte Werte für Klassifikationen