JSON_GET_VALUE
Verwenden Sie die Script-Funktion JSON_GET_VALUE, um Daten aus einem JSON-Dokument mithilfe eines JSONPath-Ausdrucks abzufragen.
Syntax
JSON_GET_VALUE (JSON, JSONPath)
Parameter
- JSON
Ein String, der ein gültiges JSON-Dokument enthält - JSONPath
Ein gültiger JSONPath-Ausdruck
Weitere Informationen: https://goessner.net/articles/JsonPath/
Wichtig!
- Stellen Sie sicher, dass Sie JSONPath Ausdrücke innerhalb eines Automation Engine-Scripts testen, bevor Sie sie in der Produktion verwenden.
- JSONPath-Ausdrücke, die in anderen Tools entwickelt wurden, funktionieren möglicherweise aufgrund eines fehlenden gemeinsamen JSONPath-Standards nicht.
Einschränkungen
JSON-Dokumente, die größer als 1 MB sind, werden nicht unterstützt.
Rückgabewert
Der zurückgegebene Wert ist immer ein String, es sei denn, der Ausdruck ist:
- Eine Zahl, dann wird eine Automic-Scriptnummer zurückgegeben
- Kein Wert, dann wird ein leerer String ("") zurückgegeben
- Ein Objekt oder ein Array von Werten, dann enthält der String eine serialisierte JSON-Darstellung dieses Objekts oder Arrays.
Laufzeitfehler
JSON_GET_VALUE schlägt mit einem Laufzeitfehler unter den folgenden Bedingungen fehl:
- 45334
Wenn Ihr JSON-Dokument ungültig ist - 45342
Syntaxfehler im JSONPath-Ausdruck
Hinweis:
Der JSON_GET_VALUE kann nur einen JSON-Wert (String oder Zahl) angeben. Verwenden Sie JSON_TO_PROCESS, wenn der JSONPath-Ausdruck mehrere Werte zurückgibt und Sie sie einzeln verarbeiten möchten.
Beispiele:
In diesem Beispiel wird die Script-Funktion verwendet, um die E-Mail-Adresse aus dem JSON-Dokument zu extrahieren und sie in den Job-Report auszugeben:
: SET &JSON_DOC# = '{"name": "Mick", "lastName" : "Myers", "contact": {"email": "mick.myers@example.com","phone": "++43 1 999992999"}}'
: SET &JSON_VAL# = JSON_GET_VALUE(&JSON_DOC#,"$.contact.email")
:P &JSON_VAL#
Ergebnis des Aktivierungsreports
U00020408 mick.myers@example.com
In diesem Beispiel wird die Script-Funktion verwendet, um zu überprüfen, ob die JSON-Antwort einen Fehlerschlüssel enthält. Wenn dies der Fall ist, wird das Script mit einer Fehlermeldung beendet.
: SET &JSON_DOC# = '{"code":404, "error":"NOT FOUND"}'
: SET &RESPONSE_ERROR# = JSON_GET_VALUE(&JSON_DOC#,"$.error")
:IF &RESPONSE_ERROR#<> ''
:print 'es ist ein Fehler aufgetreten'
:EXIT 10
:ENDIF
Ergebnis des Aktivierungsreports
2019-05-13 10:10:31 - U00020408 ein Fehler ist aufgetreten
2019-05-13 10:10:31 - U00020411 Der Befehl 'EXIT 0000000010' in 'SCRI.NEW.TEST', Zeile '00005' hat die Generierung dieser Aufgabe unterbrochen.
Siehe auch:
seealso