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: