Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Flowheater Chart

Beispiele zur JSON zu/nach CSV Konvertierung

Allgemeine Infos zur JSON zu CSV Konvertierung

Das JSON Format, XML sowie CSV Textdateien haben sich für den Austausch von Information in der IT bewährt. JSON hat gegenüber dem CSV Format den Vorteil, dass es auch strukturierte Daten beinhalten kann, und wesentlich einfacher als XML zu verwenden ist. Aus dem Grund hat sich das JSON Format als fester Bestandteil für den Austausch von Informationen in der digitalen Welt etabliert. Auch wird JSON sehr oft im Zusammenhang mit HTTP REST Web Services verwendet. Das kann natürlich auch mit dem FlowHeater HTTP REST API Adapter  verwendet und kombiniert werden.

Da nicht alle Systeme JSON und/oder CSV Dateien verarbeiten können, müssen diese beiden Formate oft miteinander kombiniert bzw. von einem Format in das andere konvertiert werden. Auf dieser Seite finden Sie mehrere Beispiele wie das mit dem FlowHeater JSON Adapter durchgeführt werden kann.

Wir fangen hier mit einer einfachen Konvertierung von JSON zu CSV an. Diese CSV Daten werden dann im zweiten Schritt wieder in eine JSON Datei umgewandelt.

Ausführliches Video zur JSON zu CSV Konvertierung

 

JSON zu CSV konvertieren (Einfach)

JSON zu CSV (Einfach)JSON zu CSV (Einfach)Wir haben eine JSON Datei erhalten und möchten diese in das CSV Format konvertieren. Hierzu benötigen wir den JSON Adapter auf der READ und den TextFile Adapter auf der WRITE Seite. Im READ Adapter wählen wir die gewünschte JSON Datei aus, anschließend liest der JSON Adapter automatisch die Struktur eines Datensatzes ein. Diese Struktur wird Ihnen dann auf dem Reiter „Felder/Datentypen“ angezeigt. Es werden automatisch die im JSON vorhandenen und erkannten Datentypen übernommen. Im einfachen Fall, so wie hier, ist das eine flache JSON Datei und Sie können die Felder eins zu eins auf die WRITE Seite übertragen. Der JSON Adapter liest jedes Hauptelement in der JSON Datei als einen Datensatz, der dann als einzelne Zeile in der CSV Datei ausgegeben wird. Auf der CSV WRITE Seite wurde zusätzlich ein AutoID Heater verwendet um die vorhandenen Datensätze durchzuzählen, siehe Ausgabe.

Das Beispiel finden Sie im Programmordner unter

…FlowHeater V4\Beispiele\JSONAdapter\Allgemein\1_JSON-zu-CSV (einfach).fhd

CSV wieder in JSON umwandeln (Einfach)

CSV nach JSON (Einfach)CSV nach JSON (Einfach)Um diese eben erzeugte CSV Datei wieder in das JSON Format umzuwandeln gehen wird folgendermaßen vor. Hierzu benötigen wir natürlich auf der READ Seite den TextFile Adapter um die CSV Datei zu lesen sowie den JSON Adapter auf der WRITE Seite um die JSON Datei zu schreiben.

Nachdem die CSV Datei auf der READ Seite ausgewählt wird und wir die Spaltennamen anhand der ersten Zeile ausgelesen haben können wird die auch schon die Felder mit der JSON WRITE Seite verbinden. Da wir ja die gleich JSON Datei erzeugen wollen, wie im ersten Beispiel ziehen wir alle Felder bis auf das Feld ID auf die WRITE Seite. Nun müssen wir den JSON Adapter nur noch mitteilen wie der JSON Ausgabename lauten soll, das wars auch schon.

Das Ganze ist nicht sehr spektakulär zeigt aber wie einfach es mit dem FlowHeater ist eine CSV Datei in das JSON Format bzw. Struktur umgewandelt werden kann.

Das Beispiel finden Sie im Programmordner unter

…FlowHeater V4\Beispiele\JSONAdapter\Allgemein\2_CSV-nach-JSON (einfach).fhd

JSON zu CSV konvertieren mit einer komplexen Struktur (Komplex)

JSON zu CSV konvertieren mit einer komplexen StrukturJSON zu CSV konvertieren mit einer komplexen StrukturNun wollen wir eine JSON Datei lesen die nicht flach strukturiert ist wie oben. Die JSON Datei enthält Unterobjekte und Arrays. Es gibt hier mehrere Rechnungen mit 1:n Unterpositionen dazu.

Fangen wir an und erstellen eine neue Definition mit dem JSON Adapter auf der READ und dem TextFile Adapter auf der WRITE Seite.
Sobald wir im JSON Adapter die Datei „JSON-zu-CSV (komplex).json“ auswählen versucht der JSON Adapter die vorhandene JSON Struktur einzulesen und zeigt die erkannte Struktur unter „Felder / Datentypen“ an, siehe Bild rechts.

Der JSON Adapter liest dazu aus dem ersten Satz alle betroffene Unterelemente aus und zeigt diese an. In diesem Fall 3 Positionen zur Rechnung.

Sie könnten jetzt diese 3 Positionen mit der CSV Ausgabeseite verbinden und alles wäre gut, siehe zweite Beispiel „3_JSON-zu-CSV (komplex)-2.fhd“ im Ordner. Allerdings versucht der JSON Adapter in diesem Fall immer 3 Unterelemente zu lesen, so wie hier definiert. Sollten mal mehr als 3 Positionen kommen würden diese dann so nicht verarbeitet werden. Wie das dynamisch mit mehreren Verarbeitungsschritten geht wird hier im letzten Beispiel „CSV aus JSON Datei erstellen (Experte)“ erklärt, siehe weiter unten.

Besser ist es in diesem Fall das Array „Positionen“ direkt mit CSV Ausgabeseite zu verbinden, so wird dynamisch diese Struktur an die CSV Ausgabe übergeben und geschrieben. Die Unterelemente werden mit separaten Trennzeichen voneinander getrennt. In den Standardeinstellungen wir „{#}“ für Objekt Elemente sowie „[#]“ für Array Elemente verwendet. Die Trennzeichen können im JSON Adapter im Reiter „Erweitert“ individuell angepasst werden.

Das fertige Beispiel finden Sie im Programmordner unter

…FlowHeater V4\Beispiele\JSONAdapter\Allgemein\3_JSON-zu-CSV (komplex).fhd

CSV in JSON umwandeln mit komplexen JSON Strukturen (Komplex)

CSV nach JSON mit 1:n UnterstrukturenCSV nach JSON mit 1:n UnterstrukturenJetzt wird es schon schwieriger. Nehmen wir an wir haben eine CSV Datei erhalten, in der Rechnungen mit 1-n Rechnungspositionen für unterschiedliche Kunden zusammengefasst sind. Diese CSV Zeilen sollen nun in das JSON Format umgewandelt bzw. konvertiert werden. Wobei natürlich jede Rechnung und Position über ein eigenes JSON Objekt dargestellt werden soll. Die JSON Rechnungspositionen Objekte müssen dann noch in die jeweilige Rechnung in einem JSON Array integriert werden, siehe Abbildung rechts.


CSV nach JSON Felder gruppierenCSV nach JSON Felder gruppierenDie CSV READ Seite sollte soweit klar sein, gehen wir gleich zur JSON Adapter Konfiguration über. Hier benötigen wir folgende Konfiguration der Felder, siehe Abbildung rechts.

Damit der JSON Adapter weiß, anhand welcher Felder die Daten gruppiert in die jeweils unterschiedlichen Objekte zuordnen kann muss für die Felder „RechNr“ sowie „ArtNr“ jeweils die Option „Schlüsselfeld für Gruppierung“ aktiviert werden. Achten Sie darauf, dass das Feld „Positionen“ als JSON Typ „Array“ sowie das Feld Position als JSON Typ „Objekt“ angelegt sind, siehe Abbildung rechts. So kann der JSON Adapter das benötigte Format ausgeben.

Das fertige Beispiel finden Sie im Programmordner unter

„…FlowHeater V4\Beispiele\JSONAdapter\Allgemein\4_CSV-in-JSON-umwandeln.fhd“

 

Aus verschachtelter JSON Struktur lesen und eine CSV Datei erstellen (Experte)

Aus der eben erzeugten JSON Datei wollen wir nun die einzelnen Elemente wieder auslesen und zurück in eine CSV Datei exportieren.

Das Problem hierbei ist, dass wir nicht wissen wie viele Rechnungspositionen pro Rechnung in der JSON Datei vorhanden sind. Um das Problem zu lösen müssen aus der JSON Datei alle Rechnungspositionen dynamisch gelesen werden. Dazu bietet der JSON Adapter die Möglichkeit über die Angabe eines „JPath“ dynamisch alle Inhalte des JSON Arrays „Positionen“ aus der JSON Datei zu lesen.

Wenn Sie im JSON Adapter eine neue Datei auswählen, wird versucht die Struktur der JSON Datei zu lesen. Im JPath werden Ihnen anschließend die möglichen Optionen vorgeblendet. Standardmäßig wird das komplette JSON Dokument gelesen und die Felder hier angezeigt.
Wählen Sie hier nun den Wert „/Positionen“ aus der Liste aus und klicken Sie auf „aus Datei neu einlesen“. In der Feldliste werden Ihnen jetzt nur noch Felder angezeigt die unterhalb des Arrays Positionen vorhanden sind.

Jetzt stoßen wir wieder auf ein weiteres Problem, die Felder „RechNr“, „Datum“ und „KundenNr“ sind hier nicht vorhanden!

JSON nach CSV (Experte)JSON nach CSV (Experte)Hierzu bietet der JSON Adapter eine geniale Möglichkeit. Sie fügen einfach manuell in der Feldliste 3 weitere Felder hinzu und weisen diesen Feldern übergeordnete Felder zu. Dazu markieren Sie ein Feld und klicken auf „Übernehme Wert von übergeordneten Node“. Anschließend öffnet sich ein Dialog worüber Sie manuell Werte angeben oder aber über die Schaltfläche „…“ bequem per Maus Felder auswählen können, siehe Abbildung rechts.

Im weiteren Dialog werden Ihnen nur noch JSON Elemente angezeigt die sich oberhalb des aktuellen Knoten (Node) befinden! Wählen Sie das benötigte übergeordnete JSON Element aus und bestätigen Sie den Dialog mit OK. Alternativ würde ein Doppelklick auf dem Element auch die Werte übernehmen und den Dialog schließen.

Wir übernehmen nun die Felder die wir in der CSV Datei benötigen und führen die Definition aus. Das war´s auch schon.

Hinweis: Auf die gleiche Weise, können bei noch komplexere bzw. verschachtelten JSON Dokumenten, über mehrere Verarbeitungsschritte weitere (im Prinzip alle) Werte ausgelesen werden. Über den InMemory Adapter können diese Daten dann problemlos immer weiter angereichert bzw. weiterverarbeitet werden.

Das fertige Beispiel finden Sie im Programmordner unter

„…FlowHeater V4\Beispiele\JSONAdapter\Allgemein\5_JSON-nach-CSV (Experte).fhd“

 

Zusammenfassung

Mit dem JSON Adapter ist es sehr einfach JSON Dateien zu lesen oder aber zu schrieben. Hier wurde generell beschrieben wie der JSON Adapter grundsätzlich arbeitet. In Verbindung mit dem HTTP REST API Adapter kann der FlowHeater unter anderem auch dynamisch Web Services aufrufen bzw. abfragen. Hierzu wird es demnächst weitere Beispiele geben.

 

FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.