Felder aus gezogener JSON auslesen

Moin zusammen,
ich möchte mit Teilen einer JSON im Dialplan arbeiten.
Zum Testen ziehe ich mir ein Objekt welches so aussieht:
{
“test”:1234,
“test2”:5678
}

Ich möchte gerne die Felder einzeln auslesen.
Ich versuche es so:

...
same => n(test),Set(CURL_RES=${CURL("https://superkompliziertesjson.com")})
same => n(test),NoOp(${CURL_RES})
same => n(test),Set(TESTVAR=${SHELL(echo -e "${CURL_RES}" | grep -Po 'test:\K[^,]*'):0:-1})
same => n(test),NoOp(${TESTVAR})
...

Jetzt habe ich das Problem, dass ich zwar “test” auslesen kann, jedoch “test2” nicht, da es nicht auf “,” endet. Es endet auf einen Line Feed bzw. auf ein “}”.
Wie bekomme ich das denn abgebildet?
Sobale ich ein
[^}]
dahintersetze, crashe ich ja den Code.

Gibt es nicht charmantere Lösungen? Wie löst ihr soetwas? Die Funktion JSONELEMENT scheint nicht implementiert zu sein.

Hintergrund: Ich erhalte das JSON Element vor dem Anruf aus der CRM mit allen wichtigen Daten zum Anrufer.

Danke!

Falls jemand genauso doof war, wie ich:

...
same => n(test),Set(CURL_RES1=${SHELL(curl https://geheim.de/kompliziertes.json | jq .test})
same => n(test),Set(CURL_RES2=${SHELL(curl https://geheim.de/kompliziertes.json | jq .test2})
same => n(test),NoOp(${CURL_RES1} ${CURL_RES2})
...

Das ganze geht auch weitere Ebenen tiefer:

{json} | jq .ebene1.ebene2.element