CSV vs JSON - wann welches Datenformat verwenden
CSV und JSON sind die zwei Datenaustauschformate, die nahezu jedes Tool im modernen Stack spricht. CSV ist Zeilen und Spalten; JSON ist verschachtelte Objekte und Arrays. Die Trennung zwischen ihnen ist schärfer als sie aussieht: CSV ist von Design her tabellarisch, und alles, was es dehnt (Kommas in Feldern, verschachtelte Daten, fehlende Zellen), wird zu einem Parsing-Problem. JSON ist von Design her strukturiert, und alles, was es abflacht (eine Million Benutzerdatensätze in einer einzigen Liste), wird zu einem Speicherproblem. Diese Anleitung deckt die Mechanik, die Realität von Größe und Geschwindigkeit, und die konkreten Entscheidungen ab, die bestimmen, welches Format für jeden Anwendungsfall gewinnt.
Was jedes Format tatsächlich ist
CSV (kommagetrennte Werte) ist ein Klartextformat: ein Datensatz pro Zeile, Felder durch ein Trennzeichen getrennt (Komma, Tab, Semikolon oder Pipe), optionale Kopfzeile, optionale Feld-Anführungszeichen. Es gibt keine einzige formale Spezifikation - RFC 4180 kodifizierte die gemeinsame Teilmenge im Jahr 2005, aber reales CSV variiert bei Trennzeichen, Anführungszeichen, Escape-Regeln, Kodierung und ob Leerzeilen erlaubt sind.
JSON (JavaScript Object Notation) ist ein rekursives strukturiertes Format: Objekte (Schlüssel-Wert-Karten), Arrays (geordnete Listen), Strings, Zahlen, Booleans und null. Die formale Spezifikation ist kurz (RFC 8259); jede moderne Sprache liefert einen JSON-Parser in der Standardbibliothek; die Interoperabilität ist nahezu universell.
Vergleich nebeneinander
| Attribut | CSV | JSON |
|---|---|---|
| Datenform | Flach: Zeilen und Spalten | Verschachtelt: beliebige Objekt-/Array-Bäume |
| Typisierung | Alles ist String; numerische / Datums-Typen beim Parsen abgeleitet | Native String, Zahl, Boolean, null; Arrays und Objekte |
| Dateigröße (1M einfache Datensätze) | ~60-80 MB | ~120-180 MB (Schlüssel pro Datensatz wiederholt) |
| Parse-Geschwindigkeit (gleiche Daten) | ~200-400 MB/s Streaming | ~80-150 MB/s Streaming (strengere Tokenisierung) |
| Streaming-freundlich | Ja - Zeile für Zeile | Nur mit JSON Lines (ein Objekt pro Zeile) |
| Schema | Implizit über Kopfzeile | Optional (JSON Schema) oder implizit |
| Verschachtelte Daten | Unbeholfen (auf Spalten abflachen oder JSON in einer Zelle einbetten) | Nativ |
| Tooling | Excel, Numbers, pandas, csvkit, jede Datenbank | Stdlib jeder Sprache, jq, jede API |
| Menschenlesbar | Sehr (Spalten richten sich aus; öffnet in Tabellenkalkulation) | Ja (wenn pretty-printed), dicht wenn minifiziert |
Wann CSV gewinnt
Tabellarische Daten mit stabilem Schema. Benutzer-Exporte aus einer Datenbank, Transaktionsprotokolle, Volkszählungsdatensätze, Analytics-Dumps - alles, was natürlich Zeilen und Spalten ist, versendet kleiner und parst schneller als CSV.
Tabellenkalkulation-Round-Trips. Wenn ein Stakeholder die Datei in Excel, Google Sheets oder Numbers öffnen wird, ist CSV das Format, das ohne Überraschungen hin- und herwechselt. JSON öffnet in einem Texteditor; wenige Nicht-Entwickler können eine 5.000-Zeilen-JSON-Datei lesen.
Streaming großer Datensätze. Eine 10-GB-Datei zeilenweise zu verarbeiten ist in CSV idiomatisch: lies eine Zeile, parse, gib aus, verwerfe. JSON Lines erreicht dasselbe, aber reines JSON (ein einzelnes Top-Level-Array) erfordert die gesamte Datei im Speicher, um korrekt geparst zu werden.
Data-Warehouse-Ladungen. Jedes Warehouse (BigQuery, Snowflake, Redshift, DuckDB) hat einen optimierten CSV-Loader. JSON-Loader existieren, sind aber typischerweise langsamer wegen der Formambiguität.
Wann JSON gewinnt
Verschachtelte oder hierarchische Daten. Ein Benutzerdatensatz mit einer Liste vergangener Bestellungen, jede Bestellung mit einer Liste von Positionen, jede Position mit einer Liste von Varianten - JSON drückt dies in einem Objekt aus; CSV erfordert entweder Denormalisierung (eine Zeile pro Position, Kopf wiederholt) oder eingebettete JSON-Strings in Zellen (das Schlimmste beider Formate).
HTTP-APIs. Jede REST- und GraphQL-API im modernen Web gibt JSON zurück. Es ist der Standard. Gib kein CSV von einer API zurück, es sei denn, der Aufrufer fragt explizit danach.
Konfigurationsdateien. Typisierte Werte (Booleans, Nulls, Zahlen) sind wichtig in der Konfiguration - CSV würde das Parsen jedes Felds als String und Casten erfordern, was Typ-Bugs einlädt. JSON bewahrt Typen. YAML bewahrt Typen und fügt Kommentare hinzu - oft die bessere Wahl für menschlich bearbeitete Konfiguration.
Heterogene Datensätze. Wenn Ihre Daten optionale Felder, polymorphe Formen oder Datensätze mit unterschiedlichen Schemata haben, bildet die Freiheit von JSON natürlich ab; CSV erzwingt die Vereinigung aller Spalten mit Leerstellen, wo ein Feld fehlt.
Der Mittelweg: JSON Lines (NDJSON)
JSON Lines (auch NDJSON genannt) ist ein JSON-Objekt pro Zeile einer Textdatei:
{"user":"alice","age":30,"tags":["admin","paid"]}
{"user":"bob","age":25,"tags":["free"]}
{"user":"carol","age":42,"tags":["paid"]}
Es behält JSONs Typisierung und Verschachtelung bei und ermöglicht gleichzeitig zeilenweises Streaming wie CSV. Die meisten Log-Verarbeitungs-Tools, Data-Warehouses und Stream-Prozessoren akzeptieren es nativ. Wählen Sie JSON Lines, wenn Sie JSONs Formflexibilität und CSVs Streaming-Freundlichkeit brauchen.
Häufige Fallstricke bei der Wahl von CSV
Kommas in Feldern. Wenn ein Feld ein Komma enthalten kann (Adressen, Beschreibungen, Produktnamen), muss das Feld in Anführungszeichen gesetzt sein. Naive split(',')-Parser brechen sofort. Verwenden Sie einen echten CSV-Parser (Python csv, Node fast-csv, Go encoding/csv).
Kodierung. Excel unter Windows verwendet standardmäßig UTF-16 LE mit BOM; die meisten Tools erwarten UTF-8. Geben Sie beim Exportieren immer die Kodierung an; fügen Sie ein UTF-8 BOM hinzu, wenn Excel-Interop wichtig ist.
Datumsformate. "2026-04-20" und "04/20/2026" sind beide ohne Region mehrdeutig. Bevorzugen Sie ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) und dokumentieren Sie die Zeitzone. Siehe unsere Unix-Zeitstempel-Anleitung für die Epoch-Alternative.
Endende Zeilenumbrüche + BOM. Manche CSV-Schreiber fügen beides hinzu; manche Parser fügen still einen leeren Datensatz oder ein unlesbares Feld hinzu. Testen Sie den Round-Trip an einer repräsentativen Stichprobe.
Konvertieren zwischen Formaten
Konvertierung im Browser ist für kleine bis mittlere Dateien praktikabel. Für JSON-Strukturinspektion verlinkt unser Entwickler-Tools-Hub auf jsonparser, text-diff und Minifier. Für CSV verwenden Sie pandas.read_csv / pandas.to_json lokal für Dateien > 100 MB; der Browser-Speicher begrenzt die Konvertierung in der Praxis auf ~500 MB pro Tab.
Die Entscheidungsregel CSV vs JSON in einem Satz
Wenn Ihre Zeilen in eine einzelne Kopfzeile mit Spaltennamen passen und ein Tabellenkalkulationsbenutzer zumindest möglicherweise nachgelagert ist, versenden Sie CSV - das Format ist der kleinste gemeinsame Nenner-Export, den jedes BI-Tool, jeder Datenbank-Loader und Excel ohne Code aufnehmen können. Wenn irgendeine Zeile verschachtelte Objekte, Arrays oder typisierte Zahlen / Booleans / Nulls über den Round-Trip hinweg bewahrt benötigt, versenden Sie JSON, und wechseln Sie zu JSON Lines (`.jsonl`), wenn die Datei groß genug ist, dass ein einzelnes Top-Level-Array den Konsumenten zwingen würde, das gesamte Dokument auf einmal in den Speicher zu laden. Die beiden Formate sind nicht austauschbar: CSV verliert auf dem Weg hinaus Typen und Verschachtelung, und JSON gewinnt eine Parser-Abhängigkeit, die das Tabellenkalkulations-Team auf dem Weg hinein möglicherweise nicht hat.
Verwandte Tools
- Text Diff - zwei CSV- oder JSON-Exporte vergleichen.
- Text- / HTML-Editor - formatierten Ausgang einfügen und rendern.
- JavaScript Minifier - JSON-produzierenden Code komprimieren.
- MD5 Converter - Fingerabdruck einer exportierten Datendatei.
Why trust these tools
- Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
- Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
- No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
- Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
- Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.