146adc970a
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
json_transform — JSON-Werte umformen
Zweck: Zieht per Pfadausdruck Werte aus einer JSON-Variable (z. B. Webhook-Antwort, *_json aus Auswahl-Tasks) und legt sie als Kontextvariablen ab — statt langer set_var/calc-Ketten. Pro <ziel> entsteht eine Variable; mehrere Treffer lassen sich aggregieren.
Parameter
| Name | Pflicht? | Default | Beschreibung |
|---|---|---|---|
quelle |
ja | — | JSON-String (Platzhalter erlaubt); ein einzelner {{var}} wird roh übernommen |
ziel (name) |
ja | — | Zielvariable; wiederholbar |
ziel (pfad) |
ja | — | Pfadausdruck (siehe unten) |
ziel (aggregat) |
nein | first |
first, last, sum, count, min, max, join, all |
ziel (join) |
nein | , |
Trenner bei aggregat="join" |
ziel (default) |
nein | (leer) | Wert, wenn der Pfad nichts liefert |
Pfadsyntax: feld.unterfeld (Objektzugriff), liste[0] (Index), liste[*] (alle Elemente → Array), liste[?key=wert] bzw. liste[?key!=wert] (Filter über String-Vergleich).
Eingangswerte: Die JSON-Variable unter <quelle>; Platzhalter in pfad.
Ausgangswerte:
- je
<ziel>eine Kontextvariable<name> - bei Array-/Objekt-Ergebnis zusätzlich
<name>_json(JSON-String);<name>enthält dann den Roh-Wert (fürloop_foreachnutzbar)
XML-Beispiel
<task type="json_transform" id="antwort_zerlegen">
<config>
<quelle>{{webhook_antwort}}</quelle>
<ziel name="buchungsnr" pfad="ergebnis.nummer"/>
<ziel name="summe" pfad="posten[*].betrag" aggregat="sum"/>
<ziel name="erste_id" pfad="posten[0].id"/>
<ziel name="offene" pfad="posten[?status=offen].betrag" aggregat="join" join=", "/>
<ziel name="anzahl" pfad="posten[*]" aggregat="count"/>
<ziel name="fallback" pfad="gibts.nicht" default="-"/>
</config>
</task>
Hinweis: <quelle> muss gültiges JSON enthalten, sonst endet der Task mit Fehler. aggregat wirkt nur, wenn der Pfad mehrere Werte liefert.