Zum Hauptinhalt springen
Lektion 2 von 12 · Strukturierte JSON-Ausgaben

Unterstützte Typen und JSON-Schemas

Lektion 2 von 12 Aktualisiert am 30. Juli 2026 Entwickler
Auf dieser Seite
  1. Die Bausteine Ihrer Schemas
  2. Die sieben unterstützten Typen
  3. Kombinieren von Typen
  4. Optionale Felder
  5. Wichtige Kernaussagen

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 anyOf mit null
  • Keine Unterscheidung zwischen Integer und Float – ein einziger number-Typ
  • enum erzwingt vordefinierte Werte für Klassifikationen