am 08-17-2020 02:36 AM
JSON – oder auch lang JavaScript Object Notation – ist ein kompaktes Datenformat in einer einfachen Textform, welches zum Austausch von Daten zwischen Applikationen verwendet werden kann. Häufig wird dies zum Beispiel bei API Schnittstellen aus dem Internet verwenden.
Im Folgenden wollen wir dieses verschachtelte JSON automatisch mit Alteryx erstellen.
{"isbn": "123-456-222",
"author":
{
"lastname": "Doe",
"firstname": "Jane"
},
"editor":
{
"lastname": "Smith",
"firstname": "Jane"
},
"title": "The Ultimate Database Study Guide",
"category": ["Non-Fiction", "Technology"],
"blubTest": [{"key":"val", "key2":"val2"},{"key":"val3", "key2":"val4"}]
}
Alteryx verwendet beim Einlesen eines solchen Datensatzes eine Punkt-Notation um die einzelnen Ebenen zu trennen und eine Zahlen-Notation um ein entsprechendes Array darzustellen. Das Ergebnis sieht damit folgendermaßen in Alteryx aus.
Author.lastname bedeutet also, dass „author“ das Oberste Schlüsselelement ist, darunter befindet sich dann „lastname“ als weiterer Schlüssel. Parallel aber auch „firstname“ auf der gleichen Ebene.
Wohingegen "category": ["Non-Fiction", "Technology"] als Array sich in category.0 mit “Non-Fiction” und category.1 mit “Technology” aufteilt.
Um also so ein oben beschriebenes JSON zu erstellen müssen die Daten für Alteryx in dieser Punkt-Notation vorliegen. Dem Workflow muss also beigebracht werden, welches Element sich auf welcher Ebene des JSON befindet.
Dies kann mithilfe von diversen Summarize, Transpose, Record ID und Formula Tools erreicht werden.
Zunächst erhalten wir aus den Datensätzen die eineindeutigen Werte, die die Schlüsselwerte auf der Root-Ebene befüllen.
Mithilfe eines Summarize oder Unique Tools bekommen wir die eindeutigen Werte für ISBN, Autor, Lektor und Titel. In diesem Beispiel lassen sich die „_“ sehr einfach durch eine Formel mit einem Punkt ersetzen, sodass die Daten im notwendigen Format vorliegen.
Etwas komplizierter wird es dann mit den verschachtelten Elementen in Kombination mit Arrays, wie zum Beispiel bei der Kategorie.
Zunächst einmal benötigen wir sämtliche möglichen Werte und ergänzen diese mit einem simplen Record ID Tool um den numerischen Identifikator für die Array Position zu bekommen. Mithilfe eines Transpose erhalte ich den Spaltenname „category“ als eigene Spalte um darauf aufbauend mein JSON Schlüssel zu erzeugen.
Mit der gleichen Verfahrensweise können auch weitere verschachtelte Elemente erzeugen.
Sobald sämtliche Elemente zusammengetragen sind kann mithilfe des JSON-Build ein fertiges JSON erzeugt werden.
{"category":["Non-Fiction","Technology"],"blubTest":[{"key":"val","key2":"val2"},{"key":"val3","key2":"val4"}],"isbn":"123-456-222","author":{"lastname":"Doe","firstname":"Jane"},"editor":{"lastname":"Smith","firstname":"Jane"},"title":"The Ultimate Database Study Guide"}
Das JSON-Build Tool befindet sich nach aktuellem Stand in der „Laboratory“ Kategorie.
Die erzeugt JSON Zeichenkette kann dann wiederum im folgenden Datenstrom verwendet werden, um es zum Beispiel an eine API zu senden.
Sie haben jetzt gesehen, wie einfach es ist, ein komplexes, verschachteltes JSON zu erzeugen. Mithilfe von Alteryx haben Sie die Möglichkeit sehr einfach jedes Objekt, in jeder beliebigen Struktur zu erzeugen, ohne auch nur eine einzige Zeile Quellcode schreiben zu müssen.