JSON to CSV Converter
Convert JSON arrays to CSV format with custom delimiters.
Geprüft von Aygul Dovletova · Zuletzt geprüft
So verwendest du den JSON-zu-CSV-Konverter
- Fuge ein JSON-Array von Objekten in den Eingabebereich ein. Jedes Objekt wird zu einer CSV-Zeile. Arrays von primitiven Werten allein lassen sich nicht konvertieren - die oberste Ebene muss ein Array sein, dessen Elemente Objekte sind.
- Wahle ein Trennzeichen: Komma (Standard), Semikolon (ublich in europaischen Gebietsschemata) oder Tab für TSV-Ausgabe.
- Schalte die Kopfzeile um. Behalte sie für die meisten Falle aktiviert. Deaktiviere sie beim Anhangen an eine vorhandene CSV, die bereits eine Kopfzeile hat.
- Klicke auf "Konvertieren". Werte, die das Trennzeichen, ein Anführungszeichen oder einen Zeilenumbruch enthalten, werden automatisch gemas RFC 4180 in doppelte Anführungszeichen eingeschlossen. Kopiere die Ausgabe oder lade sie als
.csv- oder.tsv-Datei herunter.
Wie die Konvertierung funktioniert
Der Konverter führt zunachst JSON.parse aus, was wohlgeformte Eingaben garantiert und doppelte Schlüssel in den letzten-gewinnt-Wert umwandelt. Anschliessend durchlauft er jedes Objekt im Array und sammelt die Vereinigung der Schlüssel - wenn ein Objekt email hat und ein anderes phone, enthält die Kopfzeile beide, und Objekte, denen ein Schlüssel fehlt, erzeugen leere Zellen für diese Spalte. Die Schlussreihenfolge in der Kopfzeile folgt dem Erstauftreten in der Objektsequenz.
Die Wertserialisierung behandelt die RFC-4180-Zitierregeln: Jede Zelle, die das aktive Trennzeichen, ein doppeltes Anführungszeichen, ein Wagenrucklauf oder einen Zeilenumbruch enthält, wird in doppelte Anführungszeichen eingeschlossen, und eingebettete doppelte Anführungszeichen werden verdoppelt (so wird sag "hi" zu "sag ""hi"""). Verschachtelte Objekte und Arrays werden als JSON-Strings in die Zelle serialisiert, da CSV kein Konzept für verschachtelte Strukturen hat; ein Wert wie {"address":{"city":"Berlin"}} wird zum Literaltext {"city":"Berlin"}, der als Zeichenkette zitiert wird. Boolesche Werte werden als true/false dargestellt, Zahlen in ihrer JSON-Literalform und null als leere Zelle.
Reale Anwendungsfalle
- Export einer API-Antwort in eine
.csv, die du in Excel oder Google Sheets zur Stakeholder-Prufung öffnen kannst. - Ausgabe einer Benutzerliste aus einer NoSQL-Datenbank als CSV für den Import in ein CRM oder ein Data Warehouse.
- Vorbereitung von Daten für den Massenupload in Dienste, die CSV, aber nicht JSON akzeptieren (Mailchimp-Importe, Salesforce Data Loader).
- Schnelle Erstellung einer Tabellenpivot uber JSON-Protokolldaten, ohne eine vollständige Analysepipeline aufzubauen.
- Generierung einer deterministischen CSV-Test-Fixture aus einem JSON-Seed, sodass beide Formate synchron bleiben.
- Konvertierung eines offentlichen JSON-Datensatzes in CSV für Studierende oder Analysten, die Tabellenkalkulations-Tools bevorzugen.
Fallstricke, auf die du achten solltest
- Heterogene Objekte. Wenn dein Array Objektformen mischt ("Benutzer"-Datensatze und "Ereignis"-Datensatze), erzeugt die Vereinigung-der-Schlüssel-Methode eine sparse Matrix mit vielen leeren Zellen. Filtere das Array zuerst, sodass jede Konvertierung eine Form behandelt.
- Tiefe Verschachtelung. Verschachtelte Objekte und Arrays werden als JSON-Strings serialisiert. Das bedeutet, dass nachgelagerte Leser (Excel, Sheets) Text wie
{"city":"Berlin"}statt separate Spalten sehen. Flache die Daten mit einem Map-Schritt ab, bevor du konvertierst, wenn du eine Spalte pro Blattfeld benotigst. - Gebietsschemaspezifische Trennzeichen. Wenn deine Zielgruppe Excel in einem Gebietsschema verwendet, in dem Semikolon das Listentrennzeichen ist, wähle Semikolon. Andernfalls öffnet sich die Datei mit allem in Spalte A. US/UK Excel verwendet standardmasig Komma.
- Zeilenenden. Die Ausgabe verwendet
\\r\\ngemas RFC 4180, was Excel bevorzugt. Unix-Tools tolerieren CRLF, können aber in alten Editoren^M-Artefakte anzeigen; bei Bedarf mitdos2unixkonvertieren. - Boolesche Werte und null. JavaScript
nullwird zu leer; der String"null"wird zum Literaltext "null". Diese sind nachgelagert nicht dasselbe. Sei explizit darüber, was du mochtest.
Hintergrund zur CSV-Spezifikation
RFC 4180 ("Common Format and MIME Type for CSV Files") ist das Nächste, was es zu einer kanonischen CSV-Spezifikation gibt. Sie erfordert CRLF-Zeilenenden, doppeltes-Anführungszeichen-Maskierung für Sonderzeichen und eine optionale Kopfzeile. Sie erkennt auch an, dass CSV in der Praxis stark variiert. Die Zitierregeln des RFC sind die Teile, die man sich merken sollte: Schliesse ein Feld in doppelte Anführungszeichen ein, wenn es ein Komma, ein Anführungszeichen oder einen Zeilenumbruch enthält; verdopple alle Anführungszeichen im eingeschlossenen Feld. Dieser Algorithmus - nicht mehr und nicht weniger - ist das, was dieser Konverter implementiert. Der MIME-Typ ist text/csv; für TSV ist der de-facto-Typ text/tab-separated-values. Keiner wird breit verwendet, weil Browser CSV/TSV typischerweise als generische application/octet-stream-Downloads behandeln.
Vergleich mit anderen Konvertern
Kommandozeilennutzer greifen auf jq -r '.[] | [.a, .b, .c] | @csv' zurück, wenn sie das Schema kennen, oder auf csvkits in2csv, wenn nicht. Diese Tools skalieren auf Gigabytes und behandeln Randfalle wie das Lesen von stdin mit Streaming. Tabellenkalkulations-Tools haben eingebauten CSV-Export, erfordern aber zuerst das Laden der Daten. Dedizierte ETL-Frameworks wie Airbyte oder dbt behandeln JSON-zu-CSV als eine Transformation unter vielen. Dieses In-Browser-Tool gewinnt bei der Latenz für Ad-hoc-Konvertierungen von einigen Hundert bis einigen Tausend Zeilen; daruber hinaus wird der Speicherdruck auf einem Tab spurbar, und du solltest zu jq oder einem dedizierten Skript wechseln.
Häufig gestellte Fragen
Welche JSON-Struktur erwartet der Konverter?
Es wird ein Array auf oberster Ebene benötigt, dessen Elemente Objekte sind, wie <code>[{"a":1},{"a":2,"b":3}]</code>. Ein Objekt auf oberster Ebene schlägt fehl, weil keine eindeutige Zeilendefinition vorhanden ist. Ein Array von primitiven Werten schlägt fehl, weil keine Schlüssel existieren. Wenn du verschachtelte Objekte in zeilenformige Datensatze umwandeln mochtest, fuhrst du zuerst ein <code>.map</code> mit eigener Abflachungslogik durch und fligst dann das flache Ergebnis ein.
Wie bestimmt das Tool die Spaltenreihenfolge?
Die Spaltenreihenfolge folgt dem Erstauftreten: Wenn Objekt Nr. 1 <code>id</code> und <code>name</code> einfuhrt und Objekt Nr. 3 <code>email</code> hinzufugt, lauten die Spalten <code>id,name,email</code> in dieser Reihenfolge. Das halt den Header bei gleicher Eingabe deterministisch. Wenn du alphabetische oder benutzerdefinierte Reihenfolge mochtest, sortierst du die Schlüssel selbst oder gibst sie im Code mit <code>JSON.stringify</code> und einem Replacer an.
Was passiert, wenn einem Objekt ein Schlüssel fehlt?
Die Zelle bleibt leer. Das unterscheidet sich von einer Zelle, die den String "null" oder "undefined" enthält - die serialisierte Zeile hat einfach eine Leerstelle in dieser Spalte. Leere Zellen sind in CSV mehrdeutig (leerer String vs. null), und dein nachgelagertes Tool braucht eine eigene Konvention, weshalb JSON ein besseres Format ist, wenn Fehlen von Werten wichtig ist.
Wie werden Zeichenketten mit Kommas oder Anführungszeichen darin maskiert?
Gemas RFC 4180. Jeder String, der das Trennzeichen, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthält, wird in doppelte Anführungszeichen eingeschlossen, und interne doppelte Anführungszeichen werden verdoppelt (<code>"</code> wird zu <code>""</code>). So wird <code>Er sagte "hi", dann ging er</code> zu <code>"Er sagte ""hi"", dann ging er"</code>. Das funktioniert korrekt in Excel, Google Sheets, LibreOffice und jedem RFC-konformen Parser, einschliesslich des geschwisterlichen CSV-zu-JSON-Konverters auf dieser Seite.
Wird mein JSON während der Konvertierung auf einen Server hochgeladen?
Nein. Die Logik läuft in deinem Browser-Tab uber eine Preact-Komponente. Das Klicken auf "Konvertieren" ruft lokales JavaScript auf; es gibt keinen Netzwerkabruf und keine dauerhafte Speicherung. Da Entwickler routinemassig API-Antworten einfugen, die E-Mails von Benutzern, Auth-Tokens oder interne IDs enthalten, ist die Nur-lokal-Garantie wesentlich. Du kannst die Netzwerkverbindung nach dem Laden der Seite trennen, und der Konverter funktioniert weiterhin.
Kann ich das Ergebnis als echte Datei herunterladen?
Ja. Neben der Kopier-Schaltflache gibt es eine Download-Schaltflache, die eine clientseitige <code>Blob</code>-URL verwendet, um die Ausgabe als <code>export.csv</code> (oder <code>export.tsv</code> bei Tab-Trennzeichen) zu speichern. Das funktioniert auch offline, sobald die Seite gecacht ist. Beim Herunterladen findet kein Upload statt; die Datei wird im Speicher erstellt und direkt in dein Dateisystem gespeichert.
Warum wurde die Ausgabe in Excel zu einer langen Zeile?
Excel berucksichtigt die aktuelle Windows-Einstellung "Listentrennzeichen", die in US-Gebietsschemas ein Komma und in den meisten europaischen Landern ein Semikolon ist. Wenn die CSV ein Trennzeichen verwendet, das Excel nicht erwartet, wird jede Zeile in Spalte A abgelegt. Die Lösung besteht entweder darin, das von Excel erwartete Trennzeichen zu wählen, oder uber <code>Daten > Daten abrufen > Aus Text</code> zu importieren, wo du das Trennzeichen explizit angeben kannst.
Wie werden numerische Werte formatiert?
Zahlen werden mit JavaScripts Standard-<code>toString()</code> für den Zahlentyp serialisiert. Ganzzahlen, die sicher in 64-Bit-Float passen (bis zu etwa 9 Billiarden), werden exakt dargestellt; sehr große Ganzzahlen verlieren an Prazision, weil JSON und JavaScript dieselbe Einschrankung teilen. Für extreme Werte wird wissenschaftliche Notation verwendet. Wenn dein Abnehmer eine spezifische Dezimalformatierung benötigt, verarbeitest du zuerst nach oder zwingst zu Strings.
Was passiert, wenn mein JSON verschachtelte Arrays enthält?
Verschachtelte Arrays werden als ihre JSON-String-Darstellung serialisiert und erscheinen in einer Zelle. <code>[1,2,3]</code> wird zum Zellentext <code>[1,2,3]</code> (zitiert wegen der Kommas). Nachgelagerte Leser sehen das als einzelnen Zeichenkettenwert, nicht als mehrere Spalten. Wenn du ein Array in mehrere Spalten oder mehrere Zeilen aufteilen mochtest, fuhrst du diese Umwandlung vor der Konvertierung durch.
Ist die Ausgabe uber verschiedene Durchlaufe hinweg deterministisch?
Ja, bei gleicher Eingabe. Bei identischen JSON-Bytes erhaltst du identische CSV-Bytes: die Header-Reihenfolge wird durch das Erstauftreten von Schlusseln festgelegt, Zitierregeln sind deterministisch, und Werte werden bei jedem Aufruf gleich serialisiert. Das macht die Ausgabe für Test-Fixtures und für Byte-für-Byte-Vergleiche von Daten-Exporten uber Durchlaufe hinweg geeignet.
Mehr Developer Tools
AI Token Counter
Count tokens for GPT-4o, Claude, and Gemini models instantly.
Open toolBase64 Encoder & Decoder
Encode UTF-8 text to Base64 online or decode Base64 back to UTF-8 and plain text. Runs in your browser with no upload.
Open toolBulk URL Encode / Decode
Encode or decode many URLs at once. Paste a newline-separated list and the tool processes each line in parallel, preserving order and blank lines.
Open toolchmod Calculator
Calculate and convert Unix file permission modes between octal and symbolic.
Open toolCode Screenshot
Create beautiful code snippet images with customizable themes.
Open toolColor Converter
Convert colors between HEX, RGB, HSL and CMYK formats.
Open tool