Zum Inhalt springen
Case Converter Online
de

CSV in JSON umwandeln

Füge CSV ein oder öffne eine .csv-Datei und bekomm beim Tippen ein JSON-Array. Das Trennzeichen wird automatisch erkannt, und du kannst JSON auch zurück in CSV umwandeln.

Füge CSV ein oder klicke auf Beispiel. Deine Daten bleiben in deinem Browser.

Was dieser Konverter macht

CSV ist das übliche Exportformat von Tabellenprogrammen und Datenbanken: ein Datensatz pro Zeile, Werte durch Kommas getrennt, in Deutschland meist durch Semikolons. JSON ist das, was die meisten APIs, JavaScript-Code und NoSQL-Datenbanken erwarten. Dieses Tool wandelt das eine ins andere um.

Mit einer Kopfzeile wird jede CSV-Zeile zu einem JSON-Objekt, und die Spaltennamen werden zu Schlüsseln. Ohne Kopfzeile wird jede Zeile zu einem Array von Werten. Das Parsen übernimmt Papa Parse, eine gut getestete CSV-Bibliothek, die mit Feldern in Anführungszeichen, Kommas innerhalb von Anführungszeichen und Zeilenumbrüchen in Zellen zurechtkommt.

So nutzt du ihn

  1. Wähl CSV in JSON (oder JSON in CSV für die andere Richtung).
  2. Füge deine Daten ein, klicke auf Datei öffnen, um eine .csv- oder .tsv-Datei zu laden, oder auf Beispiel.
  3. Stell die Optionen ein. Das JSON aktualisiert sich, während du sie änderst:
    • Trennzeichen: Erkennen, Komma, Semikolon, Tab oder Senkrechter Strich.
    • Ausgabe: 2 Leerzeichen, 4 Leerzeichen oder Minifiziert.
    • Erste Zeile ist Kopfzeile: eingeschaltet Objekte mit benannten Schlüsseln, ausgeschaltet Arrays.
    • Zahlen und true/false umwandeln: macht aus 12 eine Zahl und aus true einen Boolean. Ausgeschaltet bleibt jeder Wert ein String.
    • Leere Zeilen überspringen: ignoriert leere Zeilen, die Tabellenprogramme oft am Ende anhängen.
  4. Klicke auf Kopieren oder auf Herunterladen, um das Ergebnis als .json-Datei zu speichern.

Die Statuszeile zeigt, wie viele Zeilen und Spalten gelesen wurden und welches Trennzeichen erkannt wurde.

Beispiel

Diese CSV mit einem Namen in Anführungszeichen, der ein Komma enthält:

id,name,email,city,signup_date,active,orders
1,Ada Lovelace,[email protected],London,2024-03-01,true,12
2,"Hopper, Grace",[email protected],New York,2024-04-17,false,3

wird zu:

[
  {
    "id": 1,
    "name": "Ada Lovelace",
    "email": "[email protected]",
    "city": "London",
    "signup_date": "2024-03-01",
    "active": true,
    "orders": 12
  },
  {
    "id": 2,
    "name": "Hopper, Grace",
    "email": "[email protected]",
    "city": "New York",
    "signup_date": "2024-04-17",
    "active": false,
    "orders": 3
  }
]

Die Anführungszeichen um „Hopper, Grace“ haben das Komma im Namen geschützt. IDs und Bestellanzahlen wurden zu Zahlen, true und false zu Booleans, und die Daten blieben Strings, weil JSON keinen Datumstyp kennt.

Ein Export aus dem deutschen Excel

So sieht ein typischer Export mit deutschen Ländereinstellungen aus: Semikolons als Trennzeichen, Umlaute, Postleitzahlen mit führender Null und ein Betrag mit Tausenderpunkt und Dezimalkomma.

Kundennr;Name;Ort;PLZ;Umsatz;Aktiv
1;Müller GmbH;München;01067;1.234,50;true
2;Schulz & Söhne;Köln;50667;980;false

Der Konverter erkennt das Semikolon automatisch und liefert:

[
  {
    "Kundennr": 1,
    "Name": "Müller GmbH",
    "Ort": "München",
    "PLZ": "01067",
    "Umsatz": "1.234,50",
    "Aktiv": true
  },
  {
    "Kundennr": 2,
    "Name": "Schulz & Söhne",
    "Ort": "Köln",
    "PLZ": 50667,
    "Umsatz": 980,
    "Aktiv": false
  }
]

Zwei Dinge fallen auf. „1.234,50“ bleibt ein String, weil es keine gültige JSON-Zahl ist, „980“ wird dagegen zur Zahl. Und die Postleitzahl 01067 bleibt Text, 50667 wird zur Zahl. Wenn eine Spalte einheitliche Typen haben soll, schalte Zahlen und true/false umwandeln aus und wandle die Werte in deinem eigenen Code um.

Noch ein Tipp zu Umlauten: Speichere die Datei in Excel als „CSV UTF-8“. Ältere CSV-Formate von Excel nutzen eine Windows-Kodierung, und dann erscheinen ä, ö und ü nach dem Öffnen als falsche Zeichen.

Werte, die Text bleiben

Jeden Wert, der wie eine Zahl aussieht, in eine Zahl umzuwandeln, kann Daten beschädigen. Dieser Konverter behält einen Wert als Text, wenn die Umwandlung ihn verändern würde:

[
  {
    "name": "Ada",
    "zip": "02134",
    "phone": "0207 946 0000"
  }
]

Die Postleitzahl behält ihre führende Null. Dieselbe Regel gilt für IDs mit führenden Nullen und für ganze Zahlen, die länger sind, als JavaScript exakt speichern kann. Ein Preis mit Dezimalkomma, etwa 2,50 in einer Datei mit Semikolons, bleibt ebenfalls ein String, weil er keine gültige JSON-Zahl ist.

JSON in CSV

Klicke auf JSON in CSV und füge ein Array von Objekten ein. Jeder Schlüssel, der in irgendeinem Objekt vorkommt, wird zu einer Spalte, in der Reihenfolge seines ersten Auftretens. Mit Verschachtelte Objekte abflachen bekommen verschachtelte Daten Spaltennamen in Punktschreibweise:

id,name,address.city,address.zip,tags
1,Ada,London,NW1,"[""admin"",""dev""]"
2,Grace,New York,,

Grace hatte keine Postleitzahl, deshalb ist diese Zelle leer. Das Tags-Array wurde als JSON-Text geschrieben, mit verdoppelten Anführungszeichen, wie das CSV-Format es verlangt. Ein Array aus Arrays wird Zeile für Zeile ohne Kopfzeile geschrieben. Klicke auf Herunterladen, um es als .csv-Datei zu speichern, die Excel, Numbers und Google Tabellen öffnen können. Beachte, dass ein deutsches Excel beim Doppelklick Semikolons erwartet. Mit Komma getrennte Dateien importierst du dort über die Datenimport-Funktion und wählst das Komma als Trennzeichen.

Wenn Zeilen nicht passen

Hat eine Zeile mehr oder weniger Werte als die Kopfzeile, erzeugt der Konverter trotzdem JSON und nennt das Problem mit der Zeilennummer der Tabelle, zum Beispiel „Zeile 3: Too many fields: expected 2 fields but parsed 3“. Der Meldungstext kommt von Papa Parse und bleibt Englisch, nur die Zeilenangabe davor ist deutsch. Zeile 1 ist die Kopfzeile. Ein Anführungszeichen, das geöffnet und nie geschlossen wird, wird genauso gemeldet. Korrigiere die Zeile in deiner Datei und füge sie erneut ein.

Tipps

  • Prüf das JSON mit dem JSON Formatter, der auch Schlüssel sortieren und minifizieren kann.
  • Du brauchst YAML für eine Konfigurationsdatei? Wandle hier in JSON um und nimm dann den Konverter JSON in YAML.
  • Um die Daten in einer README zu zeigen, nimmt der Generator Markdown-Tabelle erstellen dieselbe CSV oder kopierte Tabellenzellen an.
  • Schalte Zahlen und true/false umwandeln aus, wenn jeder Wert ein String bleiben muss, zum Beispiel vor dem Import in ein System, das die Typen selbst bestimmt.

Andere Wege, CSV in JSON umzuwandeln

  • Python: Der DictReader aus dem eingebauten Modul csv liest Zeilen als Dictionaries, und json.dump schreibt sie heraus. Für deutsche Dateien gibst du delimiter=";" an.
  • csvkit: Der Befehl csvjson wandelt eine CSV-Datei im Terminal in JSON um.
  • Excel und Google Tabellen haben keinen JSON-Export. Speichere zuerst als CSV und wandle die Datei dann hier um.
  • jq kann den umgekehrten Weg gehen, von JSON zu CSV, mit dem Filter @csv.

Alles passiert in deinem Browser. Große Dateien brauchen etwas länger, und nichts wird hochgeladen.

CSV in JSON: Fragen und Antworten

Warum hat meine Postleitzahl im JSON noch Anführungszeichen?

Mit Absicht. Ein Wert wie 01067 würde als Zahl seine führende Null verlieren, deshalb bleiben Werte mit führender Null Text. Dasselbe gilt für ganze Zahlen, die zu groß sind, um sie exakt zu speichern, etwa lange IDs. Normale Zahlen wie 12 oder 3.5 werden zu JSON-Zahlen.

Meine Datei nutzt Semikolons. Funktioniert das?

Ja. Steht Trennzeichen auf Erkennen, prüft der Konverter auf Kommas, Semikolons, Tabs und senkrechte Striche und wählt das passende Zeichen. Excel speichert CSV mit deutschen Ländereinstellungen mit Semikolons, und die Statuszeile zeigt dir, welches Trennzeichen gefunden wurde.

Wie werden verschachtelte Objekte bei JSON in CSV behandelt?

Mit Verschachtelte Objekte abflachen wird ein verschachteltes Objekt zu mehreren Spalten mit Namen in Punktschreibweise wie address.city. Arrays werden als JSON-Text in eine Zelle geschrieben. Jeder Schlüssel, der in irgendeinem Objekt vorkommt, wird zu einer Spalte.

Werden meine Daten hochgeladen?

Nein. Die Datei wird mit Papa Parse in deinem Browser gelesen und umgewandelt. Nichts wird an einen Server gesendet, du kannst also auch Kundenlisten und andere private Daten verwenden.

Mehr Tools für Code und Daten

Alle Tools ansehen