So konvertierst du JSON und CSV
Wähle eine Richtung. JSON nach CSV erwartet ein Array aus Objekten. CSV nach JSON verwendet die erste Zeile als Header und errät keine Zahlen oder Datumswerte. Lege die wenigen nicht sicher ableitbaren Entscheidungen ausdrücklich fest.
- Gib für JSON nach CSV ein Array aus Objekten ein; Header entstehen in Reihenfolge des ersten Auftretens.
- Wähle, ob verschachtelte Werte als kompaktes JSON im Feld gespeichert oder abgelehnt werden.
- Lass den Schutz vor Tabellenformeln aktiv, wenn die Datei in Excel, LibreOffice oder ähnlicher Software geöffnet wird.
- Lege beim Import fest, ob ein leeres Feld null oder eine leere Zeichenfolge wird, und prüfe Zeilenlängen.
Beispiele und erwartetes Verhalten
| Eingabe | Ausgabe | Hinweise |
|---|---|---|
[{"name":"Jane","age":30}] |
name,age
Jane,30 |
Skalare Felder werden Spalten; Export verwendet CRLF. |
[{"name":"Doe, Jane","note":"Sie sagte \"hi\""}] |
name,note
"Doe, Jane","Sie sagte ""hi""" |
Kommas und Anführungszeichen werden korrekt gequotet. |
name,note
Jane,"Zeile 1
Zeile 2" |
[{"name":"Jane","note":"Zeile 1\r\nZeile 2"}] |
Ein gequotetes Feld darf echte Zeilenumbrüche enthalten. |
name,value
泉, |
[{"name":"泉","value":null}] |
Mit der Null-Regel wird ein leeres Feld zu JSON null. |
[{"cell":"=2+3"}] |
cell
'=2+3 |
Formelähnliche Zellen erhalten standardmäßig ein Apostroph. |
[{"meta":{"ok":true}}] |
meta
"{""ok"":true}" |
Die Stringify-Regel speichert verschachteltes JSON in einer CSV-Zelle. |
JSON-Form und Header
Die oberste Ebene muss ein Array sein, dessen Elemente nicht-null Objekte sind. Der Konverter sammelt Eigenschaftsnamen in Reihenfolge ihres ersten Auftretens. Fehlende Eigenschaften ergeben leere Zellen, ohne Spalten alphabetisch umzuordnen.
CSV ist tabellarisch, JSON-Objekte können je Zeile variieren. Normalisiere stark unterschiedliche Datensätze vor dem Export. Doppelte Header werden beim Import abgelehnt, weil sie nicht eindeutig auf Objekteigenschaften abbildbar sind.
- Array aus Objekten als Top-Level.
- Header sind die Vereinigung der Eigenschaften.
- null und fehlende Werte werden zu leeren Zellen.
RFC-4180-artige Quotierung
Der CSV-Exporter trennt Felder mit Kommas und Datensätze mit CRLF. Enthält ein Feld ein Komma, Anführungszeichen, CR, LF oder Leerraum am Rand, wird es in doppelte Anführungszeichen gesetzt; innere Anführungszeichen werden verdoppelt.
Der Parser akzeptiert CRLF, LF und CR und erhält Zeilenumbrüche in gequoteten Feldern. Nicht geschlossene Quotes, Quotes nach ungequotetem Text und Zeichen nach einem schließenden Quote werden abgelehnt. Semikolon-, Tab- oder Spezialdialekte sind nicht enthalten.
- Gequoteter Zeilenumbruch ist Felddaten.
- Zwei Quotes ergeben ein wörtliches Quote.
- Export nutzt immer Komma und CRLF.
Leere Felder, Typen und Verschachtelung
CSV besitzt keinen universellen Nullwert und kein Typsystem. Nicht leere Importfelder bleiben Zeichenfolgen; ein leeres Feld wird je nach Auswahl null oder “”. Dadurch bleiben führende Nullen erhalten und lokalisierte Datumsinterpretationen werden vermieden.
Beim Export werden Zeichenfolgen, endliche Zahlen und boolesche Werte zu Text. Arrays und Objekte werden entweder als kompaktes JSON in einer Zelle serialisiert oder als nicht tabellarisch abgelehnt. Der Empfänger muss wissen, wenn eine Zelle selbst JSON enthält.
- Keine automatische Zahlen- oder Datumserkennung.
- Die Null-Regel unterscheidet einen fehlenden Wert von leerem Text.
- Die Ablehnungsregel erzwingt ein flaches Schema.
Schutz vor Spreadsheet-Formeln
Tabellenprogramme können Zellen, die nach möglichem Leerraum mit =, +, -, @, Tab oder CR beginnen, als Formel oder Befehl interpretieren. Nicht vertrauenswürdige Daten können so unerwartete Berechnungen oder Links auslösen. Der Export setzt standardmäßig ein Apostroph vor solche Werte.
Das Apostroph verändert den exportierten Text und ist daher eine Sicherheitsrichtlinie, keine transparente CSV-Eigenschaft. Lass es für manuell geöffnete Tabellen aktiv. Deaktiviere es nur bei einem streng datenorientierten Empfänger, der exakte Anfangszeichen verlangt.
- Gilt für Header und Daten.
- CSV-Quotierung allein stoppt keine Formelinterpretation.
- Auch führender Leerraum wird berücksichtigt.
Anwendungen und Prüfung
Typische Einsätze sind kleine API-Exporte, JSON-Fixtures aus Tabellen, Kontakt- oder Inventardaten und die Analyse von Anbieterdateien. Am zuverlässigsten ist die Umwandlung bei moderaten, flachen Datensätzen mit bekanntem Schema.
Prüfe danach Header, Zeilenzahl, Leerwerte, eingebettete Umbrüche und verschachtelte JSON-Zellen. Geschäftskritische Importe benötigen im Zielsystem eigene Spalten-, Typ- und Größenvalidierung.
- API-Datensätze für Analysten bereitstellen.
- CSV-Beispiele in Test-Fixtures umwandeln.
- Quoting-Fehler in Anbieterexporten diagnostizieren.
- Den Formelschutz vor der Weitergabe der Datei prüfen.
Fehler und Grenzen
Ungültiges JSON, Nicht-Objektzeilen, doppelte Header, unterschiedliche Spaltenzahlen, ungeschlossene Quotes und ungültige Quote-Positionen werden gemeldet. Leere Dateien liefern keine sinnvolle Tabelle. Große Dateien werden vollständig im Speicher gehalten.
Es gibt keine Delimiter-Erkennung, keine Excel-Datei, kein Streaming, keine Typinferenz und keine Schema-Migration. Für Millionen Zeilen sind native Streaming-Tools geeigneter.
- Strikte Zeilenlänge schützt vor verschobenen Spalten.
- BOM am ersten Header wird entfernt, wenn vorhanden.
- Binäre Daten müssen separat kodiert werden.
Abgrenzung zu JSON-Formatter und YAML
Der JSON-Formatter bewahrt die verschachtelte Datenstruktur; CSV flacht Datensätze in Spalten ab und verliert Typinformationen. YAML eignet sich besser für hierarchische Konfiguration, CSV für tabellarische Übergabe an Tabellen- und Datenbanksysteme.
Wähle CSV nur, wenn ein dokumentiertes Spaltenschema existiert. Für beliebige verschachtelte Daten bleiben JSON oder YAML passender.