Zum Hauptinhalt springen
Tooletto

JSON zu CSV

Konvertieren Sie ein JSON-Array zu CSV für Excel, Google Sheets, oder einen Datenbankimport. Verschachtelte Objekte werden zu Spalten mit Punktnotation abgeflacht, und Datensätze mit unterschiedlichen Formen werden in einen einzigen Spaltensatz zusammengeführt.

  • Dateien verlassen niemals Ihr Gerät
  • Kostenlos, keine Anmeldung
  • Keine Wasserzeichen
  • Funktioniert nach dem Laden auch offline
Loading tool…

So verwenden Sie JSON zu CSV

  1. 1

    JSON einfügen

    Ein Array von Objekten funktioniert am besten — das Tool sagt Ihnen, ob es eine andere Form braucht.

  2. 2

    Optionen festlegen

    Wählen Sie ein Trennzeichen, und ob verschachtelte Objekte zu Spalten mit Punktnotation abgeflacht werden.

  3. 3

    CSV herunterladen

    Speichern und direkt in Excel oder Google Sheets öffnen.

Warum JSON und CSV grundlegend unterschiedliche Datenformen sind

JSON ist gebaut, um beliebig verschachtelte Daten in Baumform darzustellen — Objekte in Objekten, Arrays in Objekten, Werte wirklich unterschiedlicher Typen nebeneinander — während CSV nur eine flache, gleichförmige Tabelle darstellen kann: Zeilen und Spalten, jede Zeile mit demselben Spaltensatz, jede Zelle ein einzelner flacher Wert. Von der ersten Form zur zweiten zu konvertieren bedeutet notwendigerweise, Entscheidungen zu treffen, wie etwas abzuflachen ist, das nicht natürlich in Zeilen und Spalten passt, was genau ist, wo der Großteil der echten Komplexität dieser Konvertierungsart liegt — nicht im Lesen der JSON-Syntax selbst, was direkt ist, sondern in der Entscheidung, was eine Tabellenkalkulationszeile für Daten überhaupt bedeuten sollte, die nie von Anfang an tabellarisch waren.

Wie verschachtelte Objekte zu Spaltennamen mit Punktnotation werden

Ein verschachteltes Objekt wie `{"user": {"name": "Ada", "id": 42}}` hat keine einzelne offensichtliche Spalte, in die es in einer flachen Tabelle werden könnte, daher wird es zu zwei separaten Spalten abgeflacht — `user.name` und `user.id` — wobei die Punktnotation exakt bewahrt, woher jeder Wert in der ursprünglichen Struktur kam. Das ist eine weithin anerkannte Konvention speziell, weil sie umkehrbar ist: Eine Spalte namens `user.name` beschreibt eindeutig einen Weg zurück zu einer verschachtelten Struktur, was wichtig ist, wenn das CSV jemals zurück zu JSON konvertiert oder in ein System importiert werden muss, das Punktpfade als verschachtelte Felder versteht.

Verschachtelte Arrays werden anders behandelt, und bewusst so: Statt ein Array in zusätzliche Zeilen explodieren zu lassen — was ändern würde, wie viele Zeilen die Tabelle hat, abhängig davon, wie viele verschachtelte Elemente sich zufällig in einem Datensatz befinden, ein wirklich überraschender und oft unerwünschter Nebeneffekt — wird ein Array-Wert als JSON-Text in einer einzigen Zelle serialisiert. Die Zeilenanzahl bleibt vorhersehbar und entspricht exakt der Anzahl der Eingabedatensätze, was fast immer das ist, was jemand, der zu einer Tabellenkalkulation konvertiert, tatsächlich will, auf Kosten, dass diese Zelle zusätzliche Analyse braucht, wenn ihr Inhalt einzeln benötigt wird.

Eine Mischung von Datensätzen behandeln, die nicht alle dieselben Felder haben

Echte API-Antworten und von Hand zusammengestelltes JSON enthalten häufig Datensätze, bei denen nicht alle Objekte identische Schlüssel haben — ein optionales Feld, das in manchen Datensätzen vorhanden und in anderen fehlend ist, oder ein Schema, das sich über Zeit entwickelt hat, sodass ältere und neuere Datensätze sich leicht unterscheiden. CSV kann diese Variation nicht direkt darstellen, da jede Zeile sich mit demselben festen Spaltensatz ausrichten muss; ein Programm, das eine CSV-Datei liest, hat keine Möglichkeit zu wissen, dass einer Zeile eine Spalte „fehlt", außer jede Zeile hat explizit eine Zelle dafür. Die Lösung ist, die Vereinigung jedes in jedem Datensatz gesehenen Schlüssels zu berechnen, in der Reihenfolge, in der jeder Schlüssel zuerst gefunden wurde, und eine leere Zelle für jeden Datensatz zu füllen, dem ein gegebenes Feld fehlt — so bleibt die Form über die gesamte Datei konsistent, ohne still die Spalten irgendeines Datensatzes zu verwerfen oder Werte in der falschen Spalte falsch auszurichten.

Häufig gestellte Fragen

Welche JSON-Form erwartet es?

Ein Array von Objekten — die Form, die fast jede API zurückgibt. Ein einzelnes Objekt wird als eine Ein-Zeilen-Tabelle behandelt. Arrays primitiver Werte erzeugen eine Ein-Spalten-Datei.

Wie werden verschachtelte Objekte behandelt?

Sie werden zu Spaltennamen mit Punktnotation abgeflacht, daher wird `{"user":{"name":"Ada"}}` zu einer Spalte namens `user.name`. Verschachtelte Arrays werden als JSON-Text in einer einzigen Zelle geschrieben, statt in zusätzliche Zeilen zu explodieren, weil eine Änderung der Zeilenanzahl fast nie das ist, was ein Tabellenkalkulations-Export will.

Was passiert, wenn meine Datensätze unterschiedliche Felder haben?

Der Spaltensatz ist die Vereinigung jedes gefundenen Schlüssels, in der Reihenfolge, in der er zuerst gesehen wurde. Datensätzen, denen ein Feld fehlt, erhalten eine leere Zelle statt verworfen oder falsch ausgerichtet zu werden.

Warum verdirbt Excel mein CSV?

Normalerweise das Trennzeichen: Excel in vielen europäischen Konfigurationen erwartet Semikolons, keine Kommas. Ändern Sie die Trennzeichen-Option. Excel formatiert auch lange numerische IDs beim Öffnen als wissenschaftliche Notation um — der Import über Daten → Aus Text vermeidet das.

Werden Anführungszeichen und Kommas in Werten escaped?

Ja, nach RFC 4180. Felder mit dem Trennzeichen, einem Anführungszeichen, oder einem Zeilenumbruch werden in Anführungszeichen eingeschlossen, und interne Anführungszeichen werden verdoppelt — daher konvertiert die Datei über jeden konformen Leser korrekt in beide Richtungen.