JSON verstehen
JSON begegnet dir in 42°OS überall: Agents übergeben ihre Ergebnisse als JSON, Webhooks liefern JSON, der Internal Storage Agent liest und schreibt über JSON-Strukturen, Liquid Templates navigieren durch JSON. Wer JSON versteht, versteht wie Daten in einem Workflow fließen.
Was ist JSON?
JSON steht für JavaScript Object Notation. Es ist ein Textformat um strukturierte Daten darzustellen — lesbar für Menschen, verarbeitbar für Maschinen. Heute ist es der Universalstandard für den Datenaustausch zwischen Systemen.
Eine JSON-Struktur ist immer eine von zwei Grundformen: ein Objekt oder ein Array.
Objekte — Schlüssel und Werte
Ein Objekt ist eine Sammlung von Schlüssel-Wert-Paaren, umschlossen von geschweiften Klammern {}:
{
"invoice_number": "RE-2026-042",
"supplier": "Muster GmbH",
"amount": 1190.00,
"paid": false,
"due_date": "2026-04-15"
}
Jeder Schlüssel ist ein String in Anführungszeichen. Der Wert kann verschiedene Typen haben:
| Typ | Beispiel | Bedeutung |
|---|---|---|
| String | "Muster GmbH" | Text, immer in Anführungszeichen |
| Number | 1190.00 | Zahl, ohne Anführungszeichen |
| Boolean | true / false | Wahrheitswert |
| Null | null | Kein Wert / leer |
| Object | {...} | Verschachteltes Objekt |
| Array | [...] | Liste von Werten |
Arrays — Listen von Werten
Ein Array ist eine geordnete Liste, umschlossen von eckigen Klammern []:
["Rechnung", "Lieferschein", "Mahnung"]
Arrays können beliebige Werttypen enthalten — auch Objekte:
[
{"position": 1, "bezeichnung": "Beratung", "betrag": 800.00},
{"position": 2, "bezeichnung": "Reisekosten", "betrag": 120.50},
{"position": 3, "bezeichnung": "Materialkosten", "betrag": 269.50}
]
Das ist ein Array aus drei Objekten — die typische Struktur für Rechnungspositionen, Bestellzeilen oder Log-Einträge.
Verschachtelung
Objekte und Arrays können beliebig tief ineinander verschachtelt werden:
{
"invoice_number": "RE-2026-042",
"supplier": {
"name": "Muster GmbH",
"address": {
"street": "Musterstraße 1",
"city": "Bielefeld",
"zip": "33602"
}
},
"positions": [
{"position": 1, "bezeichnung": "Beratung", "betrag": 800.00},
{"position": 2, "bezeichnung": "Reisekosten", "betrag": 120.50}
]
}
Auf verschachtelte Werte greift man über den Pfad zu: supplier.address.city gibt "Bielefeld" zurück. positions[0].betrag gibt 800.00 zurück — [0] ist der erste Eintrag (Arrays beginnen bei 0).
JSON in 42°OS
Nachrichten zwischen Agents
Jede Nachricht die durch einen Workflow fließt, ist ein JSON-Objekt. Wenn ein Agent seinen Output hinzufügt, fügt er neue Schlüssel in dieses Objekt ein — oder verändert bestehende. Das Objekt wächst mit jedem Schritt.
Auf Werte zugreifen
In Liquid Templates greifst du über den Schlüsselnamen auf Werte zu:
{{ invoice_number }} → RE-2026-042
{{ supplier.name }} → Muster GmbH
{{ positions[0].betrag }} → 800.0
In JavaScript über die Punktnotation oder eckige Klammern:
input.invoice_number // RE-2026-042
input.supplier.name // Muster GmbH
input.positions[0].betrag // 800.0
input.positions.length // 2
Häufige Fehlerquelle: String vs. Number
{"amount": 1190.00} // Number — kann direkt gerechnet werden
{"amount": "1190.00"} // String — muss erst umgewandelt werden
Wenn eine Berechnung unerwartet NaN oder einen Fehler liefert, lohnt sich der Blick ob der Wert als String oder Number vorliegt.
JSON validieren
Wenn du dir nicht sicher bist ob dein JSON korrekt aufgebaut ist, kannst du es unter jsonlint.com prüfen. Häufige Fehler: fehlende Anführungszeichen um Schlüssel, Komma nach dem letzten Element, einfache statt doppelter Anführungszeichen.