JSON in CSV umwandeln

Läuft auf Ihrem Gerät · Ihre Datei verlässt nie Ihr Gerät.

Legen Sie eine .json-Datei ab oder fügen Sie JSON direkt aus einer API-Antwort ein und erhalten Sie eine CSV, die sich in Excel, Google Tabellen oder jedem Import-Dialog öffnen lässt. Eine Liste auf oberster Ebene ergibt eine Zeile pro Eintrag; sonst wird die längste Liste von Datensätzen im Dokument verwendet, sodass {"results": [...], "count": 2} eine Zeile pro Ergebnis ergibt; ein Objekt ohne Liste darin wird zu einer Zeile.

Die Regeln sind fest, damit das Ergebnis vorhersehbar ist: Verschachtelte Objekte werden zu Spalten mit Punkt (address.city), eine Liste einfacher Werte wird in einer Zelle mit Semikolon verbunden, und eine Liste von Objekten innerhalb eines Datensatzes bekommt nummerierte Spalten (items.0.name). Die Kopfzeile ist die Vereinigung aller gefundenen Schlüssel in der Reihenfolge ihres ersten Auftretens; fehlt einem Datensatz ein Feld, bleibt die Zelle einfach leer.

Die CSV wird nach RFC 4180 geschrieben – Felder mit Kommas, Anführungszeichen oder Zeilenumbrüchen werden korrekt in Anführungszeichen gesetzt – in UTF-8 mit optionaler Byte-Order-Marke, damit Excel jede Schrift, Umlaute, Akzente und Sonderzeichen richtig anzeigt. Eine Zelle, die mit =, +, - oder @ beginnt, bekommt einen Apostroph vorangestellt, damit eine Tabellenkalkulation sie als Text zeigt, statt sie als Formel auszuführen. Sie sehen die ersten 200 Zeilen vor dem Herunterladen, und nichts verlässt Ihr Gerät.

So geht’s: JSON in CSV umwandeln

  1. Legen Sie eine JSON-Datei ab oder fügen Sie das JSON in das Feld ein.
  2. Wählen Sie den Spaltentrenner für die Ausgabe (standardmäßig Komma) und ob die Excel-BOM gesetzt werden soll.
  3. Klicken Sie auf „In CSV umwandeln“ und prüfen Sie die Vorschau der ersten Zeilen.
  4. Laden Sie die .csv herunter.

Unterstützte Formate und Grenzen

Eingabe
JSON (.json) – Datei oder eingefügter Text, UTF-8
Ausgabe
CSV, RFC 4180, UTF-8, CRLF-Zeilenenden, optionale BOM
Verschachtelung
Objekte → Punkt-Spalten; Listen von Werten → mit ; verbunden
Trenner
Komma, Semikolon, Tabulator oder senkrechter Strich
Wo es läuft
Im Browser – ohne Upload

Nicht geeignet für: Ein tief verschachteltes einzelnes Objekt ohne Liste darin – es wird umgewandelt, aber als eine sehr breite Zeile statt als Tabelle.

Welche Liste zu den Zeilen wird

Eine Liste auf oberster Ebene bildet die Zeilen. Andernfalls durchsucht das Werkzeug das Dokument bis zu acht Ebenen tief nach der längsten Liste von Objekten. {"response": {"data": {"items": [...]}}} und {"results": [...], "count": 2, "next": null} ergeben deshalb beide eine Zeile pro Eintrag, und die Zeile unter dem Ergebnis nennt die verwendete Liste, etwa results. Werte neben dieser Liste, wie count und next, gehören zu keinem Datensatz und werden weggelassen.

Von zwei gleich langen Listen gewinnt die, die näher an der obersten Ebene liegt. Wollen Sie eine kürzere Liste, kopieren Sie sie von ihrer [ bis zu ihrer ] und fügen nur diese ein. Ein Dokument ohne Liste von Objekten wird zu einer Zeile, und Hüllen mit nur einem Schlüssel werden übersprungen: {"order": {"id": 7, "total": 12}} ergibt die Spalten id und total.

Wie Werte in die Zellen geschrieben werden

Text wird exakt übernommen, auch Datumsangaben; sie bleiben in der Form, in der das JSON sie enthält, etwa 2024-01-05T10:00:00Z. true und false werden als Wörter geschrieben. null, eine leere Liste und ein leeres Objekt werden alle zu einer leeren Zelle und sehen in der CSV also genauso aus wie ein fehlendes Feld.

Eine Zahl wird genau so geschrieben, wie das JSON sie enthält: 1.0 bleibt 1.0, 1e21 bleibt 1e21, und eine Kennung wie 12345678901234567890 behält jede Ziffer, auch ohne Anführungszeichen. Ein gewöhnlicher JSON-Leser würde aus dieser Kennung 12345678901234567000 machen.

Listen in Listen und Schlüssel, die schon Punkte enthalten

Eine Liste von Listen wird um eine Ebene geöffnet: "m": [[1, 2], [3]] ergibt eine Spalte m.0 mit 1;2 und eine Spalte m.1 mit 3. Eine Liste, die Objekte und einfache Werte mischt, nummeriert jeden Eintrag: "x": [{"z": 1}, 2] ergibt x.0.z und x.1.

Spaltennamen entstehen, indem Schlüssel mit Punkten verbunden werden; ein Schlüssel, der schon einen Punkt enthält, kann deshalb mit einem verschachtelten zusammenfallen: {"a.b": 1, "a": {"b": 2}} würde zweimal a.b ergeben. Die zweite Spalte bekommt einen Zusatz, die Spalten heißen also a.b und a.b_2, und beide Werte bleiben erhalten.

Den Trenner wählen, und Zellen, die mit = beginnen

Komma ist die übliche Wahl. Semikolon passt zu einer Tabellenkalkulation, die auf eine Sprache eingestellt ist, in der Dezimalzahlen mit Komma geschrieben werden, etwa Deutsch; dort öffnet sich eine kommagetrennte Datei oft in einer einzigen Spalte. Tabulator und senkrechter Strich sind für Systeme gedacht, die sie verlangen. Welcher Trenner es auch ist, die Datei endet auf .csv.

Eine Zelle, die mit =, +, - oder @ beginnt, ist für eine Tabellenkalkulation eine Formel, die beim Öffnen ausgeführt würde. Eine solche Zelle bekommt einen Apostroph vorangestellt – das Zeichen, mit dem Tabellenkalkulationen selbst „das ist Text“ markieren –, aus =1+1 wird also '=1+1. Einfache Zahlen wie -5 oder +3.5 bleiben, wie sie sind.

Häufige Fragen

Werden meine Dateien auf einen Server hochgeladen?
Nein. Die Umwandlung läuft vollständig in Ihrem Browser, mit der Rechenleistung Ihres eigenen Geräts. Die Datei verlässt Ihren Computer oder Ihr Handy nicht. Und wurde ein Werkzeug einmal benutzt, funktioniert es auch ohne Internetverbindung weiter (Video, Texterkennung und Hintergrundentfernung laden ihre Engine beim ersten Mal von dieser Website).
Was passiert mit verschachtelten Objekten und Listen?
Ein verschachteltes Objekt wird zu Punkt-Spalten abgeflacht: {"address":{"city":"Köln"}} wird zu einer Spalte namens address.city. Eine Liste einfacher Werte ("tags": ["a","b"]) wird als a;b in eine Zelle geschrieben. Eine Liste von Objekten in einem Datensatz bekommt nummerierte Spalten wie items.0.name, items.1.name.
Mein JSON ist ein Objekt, keine Liste – was bekomme ich?
Die längste Liste von Datensätzen irgendwo darin wird zu den Zeilen – {"results": [...], "count": 2, "next": null} ergibt eine Zeile pro Ergebnis –, und die Ergebniszeile nennt die verwendete Liste. Werte neben dieser Liste gehören zu keinem Datensatz und werden weggelassen. Ein Objekt ohne Liste darin wird als eine einzige Zeile mit einer Spalte pro Schlüssel geschrieben.
Warum zeigt Excel seltsame Zeichen statt Umlauten, und wie behebe ich das?
Excel rät die Kodierung, sofern die Datei nicht mit einer Byte-Order-Marke beginnt. Der Schalter „BOM für Excel hinzufügen“ ist standardmäßig an und setzt diese Drei-Byte-Marke; schalten Sie ihn aus für Werkzeuge, die reines UTF-8 verlangen.

Ähnliche Werkzeuge

Mehr in Tabellen und Daten

Diese Seite in anderen Sprachen: English · العربية · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা