Werkzeuge
Leitfäden

JSON-zu-CSV-Konverter

JSON

Flacht ein Array von JSON-Objekten zu CSV mit RFC-4180-Anführungszeichen ab. Als Datei herunterladbar.

100 % clientseitig Ohne Backend
Eingabe
Ausgabe
Auf dieser Seite

Was ist ein JSON-zu-CSV-Konverter?#

Ein JSON-zu-CSV-Konverter nimmt ein JSON-Array von Objekten — die Form, die die meisten APIs und Datenbanken ausgeben, wenn sie Zeilen zurückgeben — und schreibt es als CSV-Text, kommagetrennte Werte. Jedes Objekt wird zu einer Zeile, jeder Schlüssel der obersten Stufe zu einer Spalte, und die erste Zeile enthält die Feldnamen. Das Ergebnis ist Klartext, den Tabellenkalkulationen, Datenwerkzeuge und Datenbanken direkt importieren.

CSV wirkt trivial, bis man es korrekt erzeugen muss. Das Format, das tatsächlich überall funktioniert, ist RFC 4180: Felder, die ein Komma, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthalten, müssen in doppelte Anführungszeichen eingeschlossen werden, und jedes im Feld bereits vorhandene doppelte Anführungszeichen muss verdoppelt werden (""). Zeilen werden durch CRLF getrennt, nicht durch einen bloßen Zeilenumbruch. Machen Sie bei einem davon einen Fehler, so verdirbt ein Name wie Smith, John oder ein Wert wie He said "hi" die Spalten im Weiterverlauf leise — die Tabellenkalkulation sieht eine zusätzliche Spalte oder schneidet ein Feld ab.

Dieser Konverter erledigt all das für Sie und verarbeitet auch die unangenehme Tatsache, dass JSON hierarchisch ist und CSV flach: Verschachtelte Objekte werden zu Punktnotations-Spalten einebenen gemacht (address.city), und Array- oder Objekt-Felder, die sich nicht einebnen lassen, werden als JSON-Text in ihrer Zelle serialisiert. Außerdem wählen Sie das Trennzeichen — Komma, Semikolon, Tabulator oder Pipe —, weil „CSV“ in verschiedenen Regionen Verschiedenes bedeutet.

Verwendung#

  1. Fügen Sie ein JSON-Array von Objekten in die Eingabe-Fläche links ein. Ein einzelnes Objekt oder ein Objekt, das die Zeilen unter einem einzigen Schlüssel wie {"data": [...]} zusammenfasst, wird ebenfalls akzeptiert.
  2. Wählen Sie das Trennzeichen, (Standard), ;, Tabulator oder |. Semikolon ist, was viele europäische Regionen von Excel erwarten; Tabulator ergibt TSV.
  3. Setzen Sie den Haken bei Verschachtelung auflösen (standardmäßig an), um verschachtelte Objekte in Punktnotations-Spalten zu erweitern. Entfernen Sie den Haken, um verschachtelte Objekte als JSON-Text in einer einzelnen Zelle zu halten.
  4. Die CSV erscheint live in der Ausgabe-Fläche, wobei Anführungszeichen überall angewandt werden, wo ein Feld sie braucht. Die Statuszeile meldet die Zeilenanzahl.
  5. Klicken Sie auf Herunterladen, um data.csv zu speichern, oder auf Kopieren, um den Text in die Zwischenablage zu übernehmen.
  6. Beispiel lädt einen kleinen zweizeiligen Datensatz; Leeren setzt beide Flächen zurück.

Eckpunkte#

  • RFC-4180-Anführungszeichen. Felder werden genau dann eingefasst und innere Anführungszeichen verdoppelt, wenn die Spezifikation es verlangt, sodass Kommas, Anführungszeichen und Zeilenumbrüche in Werten niemals die Spaltenstruktur brechen.
  • CRLF-Zeilenenden. Die Ausgabe verwendet Windows-artige Zeilenumbrüche, was die Kompatibilität mit Excel und anderer Tabellenkalkulations-Software plattformübergreifend maximiert.
  • Wahl des Trennzeichens. Komma, Semikolon, Tabulator oder Pipe — wählen Sie, was Ihr downstream-Werkzeug erwartet; das Anführungszeichen-Verhalten passt sich an das gewählte Trennzeichen an.
  • Einebnen mit Punktnotation. Verschachtelte Objekte erweitern sich zu benannten Spalten, sodass ihre inneren Felder eigenständig stehen können; Arrays und hartnäckige Objekte werden zu JSON-Text-Zellen, statt verworfen zu werden.
  • Stabile Spalten bei ungleichmäßigen Zeilen. Die Kopfzeile ist die Vereinigung aller Schlüssel jeder Zeile in der Reihenfolge des ersten Auftretens, sodass Zeilen mit zusätzlichen oder fehlenden Feldern weiterhin korrekt ausgerichtet bleiben.

Konkretes Beispiel#

Laden Sie Beispiel und die Eingabe ist ein zweizeiliges Array:

[
  { "name": "Ada Lovelace", "role": "Engineer", "skills": ["math", "logic"] },
  { "name": "Bob",          "role": "PM",       "skills": ["docs"] }
]

Mit dem Trennzeichen auf , und Verschachtelung auflösen an sind die Spalten name, role, skills. Das Feld skills ist ein Array, deshalb wird es zu JSON-Text serialisiert; da dieser Text Kommas und doppelte Anführungszeichen enthält, wird er eingefasst und seine inneren Anführungszeichen werden verdoppelt:

name,role,skills
Ada Lovelace,Engineer,"[""math"",""logic""]"
Bob,PM,"[""docs""]"

Beachten Sie zwei Dinge, die der Konverter still und richtig getan hat. Ada Lovelace wird nicht eingefasst, weil es nur ein Leerzeichen enthält — kein Trennzeichen, kein Anführungszeichen, kein Zeilenumbruch —, sodass das Einfassen sinnlos wäre. Und die skills-Zelle für Ada ist eingefasst mit verdoppelten inneren Anführungszeichen, weil sie sowohl Kommas als auch "-Zeichen enthält, die sonst die Zeile verderben würden.

Stellen Sie das Trennzeichen auf ;, so kollidieren die Kommas innerhalb der skills-Zelle nicht mehr mit dem Trennzeichen, aber das Feld bleibt dennoch eingefasst wegen der eingebetteten doppelten Anführungszeichen — der Konverter fasst ein, sobald irgendein RFC-4180-Auslöser vorhanden ist, nicht nur das Trennzeichen.

FAQ#

Warum werden die doppelten Anführungszeichen in meinen Daten zu "" verdoppelt?#

Das ist die RFC-4180-Regel zum Einbetten eines literalen doppelten Anführungszeichens in ein eingefasstes Feld: schreiben Sie es zweimal. Ein Wert wie He said "hi" wird in der CSV zu "He said ""hi""" — die äußeren Anführungszeichen fassen das Feld ein (weil es ein " enthält), und jedes innere " wird verdoppelt, sodass der Parser weiß, dass es Daten sind, nicht das Feldende. Werkzeuge, die CSV korrekt lesen, stellen beim Import die ursprünglichen einfachen Anführungszeichen wieder her.

Mein Feld enthält ein Komma. Wird das die Spalten brechen?#

Nein. Jedes Feld, das das Trennzeichen, ein doppeltes Anführungszeichen, einen Carriage Return oder einen Zeilenumbruch enthält, wird automatisch in doppelte Anführungszeichen eingeschlossen, sodass ein Wert wie Smith, John zu "Smith, John" wird und in einer Spalte bleibt. Sie müssen nichts von Hand escapen.

Würde ich Semikolon oder Tabulator statt Komma wählen?#

Wegen der Region. Excel verwendet in vielen europäischen Regionen ; als Standard-Listentrennzeichen, sodass eine kommagetrennte Datei mit allem in einer Spalte geöffnet wird, bis Sie sie neu importieren. Tabulatorgetrennt (TSV) ist am sichersten, wenn Ihre Daten sowohl Kommas als auch Semikolons enthalten könnten — Tabulatoren kommen in echten Werten praktisch nie vor. Wählen Sie, was Ihr downstream-Werkzeug erwartet.

Was passiert mit einem verschachtelten Objekt oder einem Array-Feld?#

Mit Verschachtelung auflösen an erweitert sich ein verschachteltes Objekt zu Punktnotations-Spalten (address.city, address.zip), sodass jeder innere Wert eine eigene Spalte erhält. Ein Array-Feld lässt sich nicht verlustfrei in Spalten einebnen, deshalb wird es als JSON-Text in seiner Zelle serialisiert — zum Beispiel ["math","logic"]. Nichts wird verworfen; wenn Sie lieber jedes Array-Element in einer eigenen Zeile hätten, strukturieren Sie das JSON vorher um.