Free Trial

Knowledge Base

Lernen Sie von den Profis.

HowTo: Nested JSON mit Alteryx erstellen

DavidSta
Alteryx
Alteryx
Erstellt

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.

JSON MappingJSON Mapping

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.

JSON WF.png

 

Dies kann mithilfe von diversen Summarize, Transpose, Record ID und Formula Tools erreicht werden.

 

JSON start.png

Zunächst erhalten wir aus den Datensätzen die eineindeutigen Werte, die die Schlüsselwerte auf der Root-Ebene befüllen.

JSON root.png

 

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.

JSON Array 1.png

Mit der gleichen Verfahrensweise können auch weitere verschachtelte Elemente erzeugen.

JSON Nested Final.png

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.

 

 

Anhänge
Mitwirkende
Beschriftungen