CSV oder JSON: Wann Sie welches Format nutzen und worauf Sie beim Konvertieren achten
Wer einen Tabellenexport an eine API schickt oder eine API-Antwort in Excel öffnet, muss zwischen CSV und JSON konvertieren. Wer die Unterschiede der Formate kennt, verhindert, dass Daten unterwegs beschädigt werden.
Tabelle oder Baum
CSV (Comma-Separated Values) ist eine Tabelle. Die erste Zeile enthält die Spaltennamen, jede weitere Zeile ist ein Datensatz, die Werte sind durch Kommas getrennt. Es ist die einfachste und leichteste Art, flache Daten zu speichern, bei denen jede Zeile dieselben Spalten hat.
JSON ist ein Baum. Objekte können Arrays enthalten, die wiederum Objekte enthalten, sodass hierarchische Daten wie „eine Bestellung mit mehreren Artikeln“ natürlich abgebildet werden. Der Preis ist die Größe, da sich die Schlüsselnamen in jedem Datensatz wiederholen.
name,city,score
Kim,Seoul,92
Lee,Busan,85
[
{"name": "Kim", "city": "Seoul", "score": 92},
{"name": "Lee", "city": "Busan", "score": 85}
]
Welches Format wann
Dass CSV keine Typen kennt, hat Folgen. Speichern Sie die Postleitzahl 01234 in einer CSV-Datei, liest Excel sie womöglich als Zahl und entfernt die führende Null; lange Karten- oder Bestellnummern können zu wissenschaftlicher Notation wie 1,23E+15 werden.
- Daten, die Menschen in Excel oder Google Sheets öffnen oder bearbeiten: CSV.
- Hunderttausende Zeilen einfacher Logs oder Statistiken: CSV (klein und leicht zeilenweise zu verarbeiten).
- Anfragen und Antworten von Web-APIs: JSON.
- Hierarchische Daten mit Listen innerhalb von Datensätzen: JSON.
- Wenn Zahlen, Booleans und null unterschieden werden müssen: JSON (in CSV ist alles Text).
Kommas und Anführungszeichen: Escaping-Regeln für CSV
Was, wenn ein Wert ein Komma enthält? RFC 4180 schreibt vor, ihn in doppelte Anführungszeichen zu setzen: "Berlin, Deutschland". Ein doppeltes Anführungszeichen innerhalb eines Wertes wird durch Verdoppeln maskiert, aus He said "hi" wird also "He said ""hi""". Zeilenumbrüche innerhalb von Werten sind in Anführungszeichen erlaubt.
Code, der einfach split(',') aufruft, ignoriert diese Regeln, und die Spalten verrutschen, sobald eine Adress- oder Notizspalte auftaucht. Verarbeiten Sie CSV immer mit einem Parser oder Konverter, der den Standard einhält.
Warum Excel Umlaute verstümmelt
Ein Doppelklick auf eine UTF-8-CSV in Excel unter Windows zeigt Umlaute oder asiatische Zeichen oft verstümmelt an (aus ä wird ä). Ohne UTF-8-Byte-Order-Mark (BOM) rät Excel und greift auf die alte Systemkodierung zurück.
Speichern Sie die Datei entweder als UTF-8 mit BOM oder nutzen Sie in Excel Daten → Aus Text/CSV und wählen Sie UTF-8 ausdrücklich. Umgekehrt sollten Sie beim Einlesen einer Datei mit BOM prüfen, ob dem ersten Spaltennamen kein unsichtbares Zeichen vorangestellt wurde.
Verschachteltes JSON zu CSV abflachen
Um einen Baum in eine Tabelle zu verwandeln, braucht es eine Konvention. Verbreitet ist, den Pfad mit Punkten zu verbinden, sodass aus {"user": {"name": "Kim"}} eine Spalte user.name wird.
Arrays sind schwieriger. Hat eine Bestellung drei Artikel, können Sie entweder drei Zeilen anlegen oder die Artikel als JSON-String in einer Spalte speichern. Zusätzliche Zeilen eignen sich für Analysen, eine JSON-String-Spalte für den Erhalt des Originals.
Checkliste vor dem Konvertieren
Konvertieren Sie mit dem CSV ↔ JSON-Konverter von AIBIZAP und prüfen Sie die Struktur anschließend im JSON-Formatierer, um Fehler früh zu erkennen.
- Prüfen Sie, ob die erste Zeile eine Kopfzeile ist und das Trennzeichen wirklich ein Komma ist (Semikolon ist im deutschsprachigen Raum sehr verbreitet, Tabulator ebenfalls).
- Behalten Sie Codes mit bedeutsamen führenden Nullen als Strings bei.
- Entfernen Sie zuerst Leerzeichen um Zellen und Leerzeilen; der Leerzeichen-Entferner hilft dabei.
- Prüfen Sie, ob die Zeilenzahl nach der Konvertierung mit dem Original übereinstimmt. Eine Abweichung deutet meist auf ein Problem mit Anführungszeichen oder Zeilenumbrüchen hin.