Daten · 2 Min. Lesezeit ·
JSON in CSV, ohne ein einziges Feld zu verlieren
Verschachtelte Schlüssel, optionale Felder und Kommas in Texten: So macht 4Dev aus unordentlichem JSON eine tabellenfertige CSV.

Tabellen sind flach, JSON ist es nicht. Jede Umwandlung von JSON in CSV muss entscheiden, was mit verschachtelten Objekten, Arrays und Schlüsseln passiert, die nur manche Datensätze haben. Genau das macht der Konverter von 4Dev.
Jeder Schlüssel bekommt eine Spalte
Die Kopfzeile entsteht aus den Schlüsseln aller Objekte, in der Reihenfolge ihres ersten Auftretens, nicht nur aus dem ersten Datensatz. Fehlt einem Datensatz ein Schlüssel, bekommt er eine leere Zelle. So verrutschen keine Spalten und optionale Felder gehen nicht verloren.
[{"id":1,"name":"Ada"},
{"id":2,"name":"Alan","note":"optional"}]
id,name,note
1,Ada,
2,Alan,optional
Verschachtelte Objekte werden zu Spalten mit Unterstrich
Objekte werden abgeflacht, indem ihre Schlüssel mit einem Unterstrich verbunden werden: Aus {"address":{"city":"Lisbon"}} wird eine Spalte namens address_city. Ein Array aus einfachen Werten landet in einer Zelle ("admin, dev"), ein Array aus Objekten bleibt als JSON-Text in seiner Zelle. So geht nichts verloren.
Kommas und Anführungszeichen werden automatisch maskiert
Jeder Wert mit Komma, doppeltem Anführungszeichen oder Zeilenumbruch wird in doppelte Anführungszeichen gesetzt, innere Anführungszeichen werden verdoppelt. Das ist die Standardregel für CSV, die Excel und Google Tabellen erwarten.
2,"Alan, T.","says ""hi"""