Daten · 3 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"""

Die CSV in Excel öffnen

CSV hat keine eigenen Einstellungen, also rät Excel. Zwei Dinge gehen oft schief. In Ländern mit Komma als Dezimaltrennzeichen, etwa in Deutschland, erwartet Excel Semikolons zwischen den Spalten und packt womöglich eine ganze Zeile in eine Zelle. Und Umlaute, Hebräisch oder Emojis werden zu seltsamen Zeichen, wenn die Datei in einer lokalen Kodierung statt in UTF-8 geöffnet wird. In beiden Fällen hilft in Excel Daten → Aus Text/CSV: UTF-8 und Komma als Trennzeichen wählen, dann stimmen die Spalten.

Führende Nullen und lange Zahlen

Tabellenprogramme behandeln alles als Zahl, was wie eine Zahl aussieht. Eine Postleitzahl wie 01234 verliert ihre führende Null, und eine 16-stellige ID wie 1234567890123456 wird gerundet und als 1,23457E+15 angezeigt. Die CSV selbst ist korrekt; der Schaden entsteht beim Öffnen in Excel. Importiere diese Spalten als Text und schicke lange IDs im JSON als Strings ("id": "1234567890123456"), damit jedes Werkzeug sie genau so behält.

Arrays in Datensätzen

Arrays sind der schwierigste Teil jeder Umwandlung, denn ein Datensatz kann viele Werte enthalten, während eine CSV-Zeile eine Zelle pro Spalte hat. Sie auf mehrere Zeilen zu verteilen, würde alle anderen Felder wiederholen, und nummerierte Spalten (tags_1, tags_2 …) erzeugen für jede Datei einen anderen Kopf. Eine Liste einfacher Werte in einer Zelle und ein Array von Objekten als JSON-Text sorgen dafür, dass jeder Datensatz genau eine Zeile bleibt und sich die Originaldaten bei Bedarf wiederherstellen lassen.

Prüfe das Ergebnis, bevor du es teilst

  • Die Zahl der Zeilen entspricht der Zahl der Datensätze im JSON-Array.
  • Die Kopfzeile enthält jedes erwartete Feld, auch die optionalen.
  • Verschachtelte Felder erscheinen als Spalten mit Unterstrich, etwa address_city.
  • Werte mit Kommas, Anführungszeichen oder Zeilenumbrüchen sind in einer Zelle geblieben.

Brauchst du eine Tabelle oder die umgekehrte Richtung?

Der JSON-zu-CSV-Konverter von 4Dev wendet jedes Mal dieselben Regeln zum Abflachen an, und die Werkzeuge JSON zu Excel und CSV zu JSON decken die anderen häufigen Fälle ab. Für einen schnellen Test füge zuerst ein paar Datensätze ein, prüfe die Spalten und wandle dann die ganze Datei um.

JSON-zu-CSV-Konverter öffnen

LinkedInXFacebook