Deserialisierung mit RPA – Teil 2 JSON

Was ist JSON

JavaScript Object Notation (JSON) ist ein Textformat, das basierend auf ein JavaScript Objekt, strukturierte Daten darstellt. Dabei können die Datensätze, beispielsweise aus einer Liste, auf unterschiedliche Ebenen verschachtelt sein. JSON setzt dabei standardmässig die UTF-8 als Zeichenkodierung ein, wobei auch UTF-16 und UTF-32 eingesetzt werden können. Die Datentypen Nullwert, Boolean, Zahl, Zeichenketten, Array und Objekt können in JSON angewendet werden.
Um die JSON Daten angemessen validieren und weiterverarbeiten zu können, gibt das JSON Schema die notwendige Struktur vor. Das JSON Schema ist auf dem Konzept des XML Schemas, dass im letzten Blogbeitrag Deserialisierung mit RPA – Teil 1 XML – Routinuum erläutert wird, aufgebaut. Das JSON Textformat kann aufgrund der Struktur sowohl durch Menschen als auch durch Maschinen einfach gelesen und interpretiert werden.

JSON ist eines der am meisten verwendeten Formate, um Daten auf Webanwendungen und mobile Apps zu übertragen oder abzuziehen. Die Datenübertragung erfolgt dabei zwischen Clients und Servern. JSON wird inzwischen durch die bedeutendsten Entwicklungsumgebungen unterstützt, die mittels Parsern und Generatoren JSON Files lesen und erstellen können, so auch die Entwicklungsumgebung UiPath Studio des RPA-Softwareanbieters UiPath.

Aufgrund des verbreiteten Einsatzes von JSON Files bei Datentransfers mit Webanwendungen und mobilen Apps bieten sich bei der Auswertung und Verarbeitung dieser Files diverse Anwendungsfälle mit grossem Automatisierungspotenzial. Die Herausforderung liegt im korrekten Auslesen der Werte aus den JSON Files, da sich diese in Schema und Struktur  von herkömmlich von RPA verarbeiteten Dokumententypen, wie Excel, Mail, Word, etc. unterscheiden.

Aktivitätenpaket

Um JSON Files in UiPath interpretieren und verarbeiten zu können, ist ebenfalls das Aktivitätenpaket „UiPath.WebAPI.Activities“ notwendig. Dieses beinhaltet neben XML- und JSON-Bausteine auch Aktivitäten, um REST- und SOAP-Abfragen zu tätigen.

„UiPath.WebAPI.Activities“ Aktivitätenpaket aus dem UiPath Studio

Im „UiPath.WebAPI.Activities“-Aktivitätenpaket sind zwei JSON Deserialisierungsbausteine enthalten. Die Bausteine unterscheiden sich in JSON-Objekte und -Arrays.

Auslesen JSON Objekte

Der unten aufgeführte JSON String wird im folgenden Beispiel angewendet, um die Deserialisierung von JSON Objekten aufzuzeigen:

JSON Objekt File

Unabhängig davon, ob ein JSON Objekt oder ein JSON Array ausgelesen werden soll, beginnt der Deserialisierungsprozess mit dem Einlesen des JSON Files durch eine „Read Text File“-Aktivität. Die „Read Text File“ Aktivität gibt das JSON File als String aus und speichert dieses in eine entsprechende Variabel.
Für das Auslesen von JSON Objekten wird die „Deserialize JSON“-Aktivität angewendet. Dabei wird der JSON String eingelesen und in eine Variabel des Datentyps JObject („jsoJsonObjectData“) ausgegeben.

Die JSON Objekte können anschliessend direkt abgefragt oder einer entsprechenden Variabel zugewiesen werden. Im unten aufgeführten Beispiel werden die JSON Objekte „name“ und „description“ als String abgefragt und zugehörigen Variablen zugewiesen:

strName = jsoJsonObjectData(„name“).ToString
strDescription = jsoJsonObjectData(„description“).ToString

JSON Objekt Prozess

Die beiden JSON Objekte, die den String Variablen strName und strDescription zugewiesen wurden, können nun beispielsweise über eine „Message Box“-Aktivität ausgelesen werden. Der Befehlt „vbCrLf“ setzt den Cursor an den Beginn einer neuen Zeile und ermöglicht somit einen Absatz.

Message Box Query
„Der Name dieses Prozesses lautet: “ + vbCrLf + strName + vbCrLf + vbCrLf + „Die Beschreibung dieses Prozesses lautet:“ + vbCrLf + strDescription

Message Box Ausgabe

Auslesen JSON Array

Der unten aufgeführte JSON Array String wird im folgenden Beispiel angewendet, um die Deserialisierung von JSON Arrays aufzuzeigen:

JSON Array File

Identisch wie beim Prozess zum Auslesen von JSON Objekten wird auch in diesem Fall in einem ersten Schritt das JSON File durch eine „Read Text File“-Aktivität eingelesen und einer String Variabel zugewiesen. Für die Deserialisierung wird im Anschluss die „Deserialize JSON Array“-Aktivität angewendet, die den JSON String Array in den Datentyp JArray umwandelt und einer entsprechenden Variabel („jsaJsonArrayData“) zuweist.

JSON Array Prozess

Nun können die einzelnen Elemente des JSON Arrays beispielsweise über eine For Each Schlaufe einer Variabel zugewiesen oder ausgelesen werden. In diesem Beispiel wurden die drei Array Elemente „Robotic“, „Process“ und „Automation“ durch eine Assign-Aktivität innerhalb einer For Each Schlaufe aneinandergereiht und in einer „Message Box“-Aktivität wiedergegeben:

strMessage = strMessage + item.ToString + “ „

Message Box Ausgabe

Mit diesem Vorgehen lassen sich auch komplexere JSON Files auslesen, die sowohl JSON Objekte als auch JSON Arrays enthalten. Solltet Ihr weitere Fragen oder Unklarheiten im Zusammenhang mit der RPA-Verarbeitung JSON haben, lasst es uns gerne in den Kommentaren wissen.

Für Interessenten an der Verarbeitung von XML in UiPath Studio empfehlen wir den ersten Teil unserer Blogreihe Deserialisierung mit RPA – Teil 1 XML – Routinuum. Im nächsten und letzten Teil der Blogreihe, der in den kommenden zwei Wochen veröffentlicht wird, werden Abfragen über REST und SOAP behandelt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.