JSON to CSV

JSON-Array in CSV-Format konvertieren

Läuft lokal · Sicher zum Einfügen von Secrets
CSV erscheint hier…

Was ist JSON-zu-CSV-Konvertierung?

Die JSON-zu-CSV-Konvertierung wandelt strukturierte Daten aus dem JSON-Format in kommagetrennte Werte um — ein tabellarisches Format, das Tabellenkalkulationen, Datenbanken und Analyse-Tools nativ verarbeiten können. JSON speichert Daten als verschachtelte Objekte und Arrays ohne festes Schema. CSV speichert Daten als Zeilen und Spalten, wobei eine Kopfzeile die Feldnamen definiert. Die Konvertierung ist der Weg, wie API-Daten in Tabellenkalkulationen und Datenbanken gelangen.

CSV (Comma-Separated Values) ist durch RFC 4180 definiert. Jede Zeile ist ein Datensatz, und Felder innerhalb einer Zeile werden durch ein Trennzeichen getrennt, meist ein Komma. Felder, die das Trennzeichen, doppelte Anführungszeichen oder Zeilenumbrüche enthalten, müssen in doppelte Anführungszeichen eingeschlossen werden, wobei interne Anführungszeichen durch Verdopplung escaped werden. Dieses Escaping ist die häufigste Fehlerquelle beim manuellen Schreiben eines JSON-zu-CSV-Konverters.

Die Konvertierung ist unkompliziert, wenn die Eingabe ein flaches Array von Objekten mit konsistenten Schlüsseln ist. Jedes Objekt wird zu einer Zeile, und jeder eindeutige Schlüssel wird zu einem Spaltenheader. Verschachtelte Objekte und Arrays erfordern einen Flattening-Schritt, und inkonsistente Schlüssel über Objekte hinweg erfordern eine Strategie für fehlende Felder — typischerweise wird die Zelle leer gelassen. Ein zuverlässiger Konverter behandelt all diese Grenzfälle automatisch.

Warum JSON in CSV konvertieren?

APIs liefern JSON, aber Tabellenkalkulationen, SQL-Datenbanken und BI-Tools erwarten tabellarische Daten. Die Konvertierung von JSON in CSV ermöglicht den Datentransfer zwischen diesen Systemen, ohne eigene Import-Skripte schreiben zu müssen.

Sofortige Browser-Konvertierung
JSON einfügen und die Datei sofort herunterladen. Kein Server-Upload, keine Dateigrößenbeschränkungen externer APIs, kein Warten auf Verarbeitungswarteschlangen.
🔒
Datenschutz-First-Verarbeitung
Deine Daten bleiben in deinem Browser. Die Konvertierung läuft vollständig in JavaScript auf deinem Gerät. Datenbankexporte, Benutzerdatensätze und Finanzdaten verlassen deinen Rechner nicht.
🔀
Unterstützung mehrerer Trennzeichen
Wähle zwischen Komma, Semikolon, Tab oder Pipe als Trennzeichen. Verwende Semikolons für Tabellenkalkulationen in europäischen Ländereinstellungen, Tabs für TSV-Dateien oder Pipes für Importe in Legacy-Systeme.
📋
Kein Konto erforderlich
Seite öffnen und konvertieren. Keine Registrierung, kein API-Key, keine CLI-Installation. Funktioniert auf jedem Gerät mit einem modernen Browser.

JSON-zu-CSV-Anwendungsfälle

API-Datenexport für Tabellenkalkulationen
REST-APIs liefern JSON. Produktmanager und Analysten benötigen diese Daten in Excel oder Google Sheets. API-Antwort in CSV konvertieren und direkt in einer beliebigen Tabellenkalkulationsanwendung öffnen.
Bulk-Import in Datenbanken
PostgreSQL COPY, MySQL LOAD DATA und SQLite .import akzeptieren alle CSV. Das Dataset in das tabellarische Format konvertieren für schnelles Bulk-Laden ohne ein eigenes Import-Skript zu schreiben.
ETL-Pipeline-Prototyping
ETL-Pipelines haben oft Zwischenausgaben, die als reines JSON schwer zu inspizieren sind. Die Ausgabe eines Schritts in CSV konvertieren und in einer Tabellenkalkulation öffnen, um Transformationen zu überprüfen, bevor die gesamte Pipeline verdrahtet wird.
Testdaten für QA vorbereiten
QA-Ingenieure generieren Test-Fixtures als JSON, aber viele Test-Frameworks und datengetriebene Test-Tools akzeptieren CSV für parametrisierte Testeingaben. Fixtures ohne manuelles Umformatieren in CSV konvertieren.
Log-Analyse und Reporting
Strukturierte JSON-Logs aus Anwendungen und Cloud-Diensten können in CSV konvertiert und in BI-Tools wie Tableau, Power BI oder Looker für Visualisierung und Reporting importiert werden.
Wissenschaftliche Datenverarbeitung
Studierende und Forschende, die mit offenen Daten-APIs arbeiten, erhalten JSON-Antworten. Die Konvertierung in CSV ermöglicht die Analyse in R, pandas, SPSS oder Excel ohne eigenen Parsing-Code.

CSV-Trennzeichen-Referenz

Das Trennzeichen trennt Felder innerhalb jeder Zeile. Komma ist das häufigste, aber andere Trennzeichen sind in bestimmten Kontexten Standard. Die Wahl des falschen Trennzeichens führt dazu, dass Felder beim Öffnen der Datei falsch zusammengefasst oder aufgeteilt werden.

TrennzeichenZeichenErweiterungWann verwenden
Comma,.csvDefault for most spreadsheets and databases
Semicolon;.csvStandard in locales where comma is a decimal separator (DE, FR, BR)
Tab\t.tsvAvoids escaping when field values contain commas or semicolons
Pipe|.csvUsed in fixed-width legacy systems and some ETL pipelines

Verschachtelte JSON-Strukturen in CSV verarbeiten

CSV ist ein flaches Format ohne native Möglichkeit, verschachtelte Objekte oder Arrays darzustellen. Wenn das JSON verschachtelte Strukturen enthält, muss der Konverter sie in Spalten flattenen. Es gibt verschiedene Strategien, und die richtige Wahl hängt davon ab, wie die CSV weiterverarbeitet wird.

Punkt-Notation-Flattening
Verschachtelte Schlüssel werden mit Punkten verbunden: {"address": {"city": "Berlin"}} wird zu einer Spalte namens address.city mit dem Wert Berlin. Dies ist der gebräuchlichste Ansatz und funktioniert gut mit Tools, die verschachtelte Feldreferenzen unterstützen.
Array-Index-Spalten
Arrays werden in nummerierte Spalten aufgefächert: {"tags": ["a", "b"]} wird zu tags.0 = a, tags.1 = b. Dies erhält alle Werte, erzeugt aber viele Spalten bei großen Arrays.
JSON-String-Fallback
Komplexe verschachtelte Werte werden als JSON-Strings in der CSV-Zelle serialisiert: Die Zelle enthält den rohen JSON-Text. Dies erhält die vollständige Struktur, erfordert aber vom Verbraucher das Parsen des Zellenwerts.
Verschachtelte Felder ignorieren
Manche Konverter lassen verschachtelte Objekte und Arrays ganz weg und behalten nur skalare Felder (String, Zahl, Boolean, null). Dies erzeugt sauberes CSV, verliert aber Daten. Nur sinnvoll, wenn die verschachtelten Felder nicht benötigt werden.

Code-Beispiele

Die programmatische Konvertierung von JSON in CSV erfordert die Behandlung von Header-Extraktion, Feld-Quoting und Trennzeichen-Escaping. Die meisten Sprachen bieten integrierte oder Standard-Bibliotheks-Unterstützung für das CSV-Schreiben.

JavaScript (Node.js)
const data = [
  { name: "Alice", age: 30, city: "Berlin" },
  { name: "Bob", age: 25, city: "Tokyo" },
]

// Extract headers from the first object
const headers = Object.keys(data[0])
const csv = [
  headers.join(","),
  ...data.map(row => headers.map(h => {
    const val = String(row[h] ?? "")
    // Quote fields that contain commas, quotes, or newlines
    return val.includes(",") || val.includes('"') || val.includes("\n")
      ? '"' + val.replace(/"/g, '""') + '"'
      : val
  }).join(","))
].join("\n")

console.log(csv)
// → name,age,city
// → Alice,30,Berlin
// → Bob,25,Tokyo
Python
import json, csv, io

json_str = '[{"name":"Alice","age":30,"city":"Berlin"},{"name":"Bob","age":25,"city":"Tokyo"}]'
data = json.loads(json_str)

output = io.StringIO()
writer = csv.DictWriter(output, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)

print(output.getvalue())
# → name,age,city
# → Alice,30,Berlin
# → Bob,25,Tokyo
CLI (jq + Miller)
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
  jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25

# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main

import (
    "encoding/csv"
    "encoding/json"
    "fmt"
    "os"
)

func main() {
    jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
    var data []map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    w := csv.NewWriter(os.Stdout)
    // Write header
    headers := []string{"name", "age"}
    w.Write(headers)
    // Write rows
    for _, row := range data {
        record := make([]string, len(headers))
        for i, h := range headers {
            record[i] = fmt.Sprintf("%v", row[h])
        }
        w.Write(record)
    }
    w.Flush()
    // → name,age
    // → Alice,30
    // → Bob,25
}

Häufig gestellte Fragen

Welche JSON-Struktur erwartet dieser Konverter?
Der Konverter erwartet ein JSON-Array von Objekten, wie [{"name":"Alice"},{"name":"Bob"}]. Jedes Objekt im Array wird zu einer Zeile in der Ausgabe, und die Objektschlüssel werden zu Spaltenheadern. Ein einzelnes JSON-Objekt (nicht in einem Array) wird als einzeilige Tabelle behandelt.
Wie werden verschachtelte Objekte und Arrays behandelt?
Verschachtelte Werte werden mittels Punkt-Notation geflattenet. Zum Beispiel erzeugt {"address":{"city":"Berlin"}'} eine Spalte namens address.city. Arrays werden in indizierte Spalten aufgefächert (tags.0, tags.1). Dies erhält alle Daten bei flacher Ausgabe.
Was passiert, wenn Objekte unterschiedliche Schlüssel haben?
Der Konverter sammelt alle eindeutigen Schlüssel über alle Objekte im Array und verwendet sie als Spaltenheader. Objekte, denen ein Schlüssel fehlt, erhalten eine leere Zelle für diese Spalte. Es gehen keine Daten verloren, und die Spaltenreihenfolge folgt der Reihenfolge, in der Schlüssel zuerst auftreten.
Kann ich ein Semikolon oder Tab statt eines Kommas verwenden?
Ja. Das Tool unterstützt Komma, Semikolon, Tab und Pipe als Trennzeichen. Verwende Semikolons, wenn deine Daten oder Ländereinstellungen Kommas als Dezimaltrennzeichen verwenden (üblich in deutschen, französischen und brasilianischen Tabellenkalkulationen). Verwende Tabs für TSV-Dateien, die von Unix-Tools verarbeitet werden.
Ist die Konvertierung verlustfrei?
Für flache JSON-Arrays mit konsistenten Skalarwerten ja. Die Ausgabedatei enthält dieselben Daten und kann zurück in identisches JSON konvertiert werden. Bei verschachtelten Strukturen verändert das Flattening die Form der Daten. Array-Werte, die in indizierte Spalten oder JSON-Strings serialisiert wurden, können rekonstruiert werden, aber der Round-Trip erfordert Kenntnis der ursprünglichen Struktur.
Wie große JSON-Dateien kann ich konvertieren?
Das Tool läuft im Browser und verarbeitet Daten im Arbeitsspeicher — Dateien bis zu 10–20 MB konvertieren auf modernen Geräten problemlos. Für größere Dateien empfiehlt sich ein CLI-Tool wie jq, Miller oder ein Python-Skript mit dem csv-Modul, die Daten als Stream verarbeiten.
Ist es sicher, sensible Daten in dieses Tool einzufügen?
Ja. Die gesamte Verarbeitung erfolgt im Browser mit JavaScript. Es werden keine Daten an einen Server übertragen. Dies lässt sich bestätigen, indem die Entwickler-Tools des Browsers geöffnet und der Netzwerk-Tab während der Konvertierung überprüft wird.