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!