JSON_TO_PROCESS

Die Script-Funktion JSON_TO_PROCESS wird verwendet, um JSON-Werte in einer internen Liste (Prozess) für die weitere Verarbeitung zu speichern (z. B. Iteration über Elemente).

Syntax

JSON_TO_PROCESS (JSON, JSONPath [,MODE])

Parameter

Hinweise:

Rückgabewert

Die Script-Funktion speichert Werte aus einem JSON-Dokument, das mit einem JSONPath-Ausdruck in einer Datensequenz (interne Liste) übereinstimmt. Der Verweis auf die erzeugte Datensequenz wird als Rückgabewert zurückgegeben.

Laufzeitfehler

JSON_TO_PROCESS schlägt mit einem Laufzeitfehler unter den folgenden Bedingungen fehl:

Beispiele:

Dieses Beispiel verwendet die Script-Funktion, um die in der JSON-Struktur enthaltenen Host-IP-Adressen auszugeben.

:SET&JSON_DOC# = '[{"host":"192.168.0.10","active":true},{"host":"192.168.0.20","active":false},{"host":"192.168.0.29","active":true}]'
:SET&HND# = JSON_TO_PROCESS(&JSON_DOC#, '$..host' )
:PROCESS&HND#
:SET&HOST_IP# = GET_PROCESS_LINE(&HND#)
:PRINT"&HOST_IP#"
:ENDPROCESS

Ergebnis des Aktivierungsreports

U00020408 192.168.0.10
U00020408 192.168.0.20
U00020408 192.168.0.29

Iterieren Sie über alle Schlüssel und Werte eines JSON-Objekts mit dem Modus KEYS:

:SET&JSON_DOC# = '{"serverConfig": {"OS":"Linux","Cores":8,"RAM": 16, "DiskType":"SSD","DiskSpace":512}}'
:SET&OBJPATH# = '$.serverConfig'

! Zuerst rufen wir alle Schlüssel des serverConfig-Objekts unter Verwendung des Modus "KEYS" ab, d. h. "OS", "Cores",...

:SET&KEYS# = JSON_TO_PROCESS(&JSON_DOC#,&OBJPATH# ,"KEYS")
:PROCESS&KEYS#
:SET&KEY#= GET_PROCESS_LINE(&KEYS#)

! Jetzt rufen wir den Wert für diesen Schlüssel ab, indem wir den Objektpfad und den Schlüsselnamen verknüpfen

:SET&VALUE# = JSON_GET_VALUE(&JSON_DOC#,'&OBJPATH#.&KEY#')
:P'&KEY#:&VALUE#'
:ENDPROCESS

Ergebnis des Aktivierungsreports

U00020408 OS:Linux
U00020408 Cores:8
U00020408 RAM:16
U00020408 DiskType:SSD
U00020408 DiskSpace:512

Setzen Sie alle Werte der aktiven Eigenschaft auf true. Wählen Sie dazu die JSONPaths aller aktiven Eigenschaften aus, und verwenden Sie dann JSON_SET_VALUE, um diese Pfade auf true zu ändern.

:SET&JSON_DOC# = '[{"host":"192.168.0.10","active":false},{"host":"192.168.0.20","active":false},{"host":"192.168.0.29","active": true}]'
:SET&HND# = JSON_TO_PROCESS(&JSON_DOC#, '$..active', "PATH" )
:PROCESS&HND#
: SET&STATUS_PATH# = GET_PROCESS_LINE(&HND#)
: SET &RET# = JSON_SET_VALUE(&JSON_DOC#, &STATUS_PATH#, 'true')
:ENDPROCESS
:PRINT&JSON_DOC#

Ergebnis des Aktivierungsreports

U00020408 [{"host":"192.168.0.10","active":"true"},{"host":"192.168.0.20","active":"true"},{"host":"192.168.0.29","active":"true"}]

Siehe auch:

seealso

JSON-Verarbeitung