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
- Wähl CSV in JSON (oder JSON in CSV für die andere Richtung).
- Füge deine Daten ein, klicke auf Datei öffnen, um eine
.csv- oder.tsv-Datei zu laden, oder auf Beispiel. - 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
12eine Zahl und austrueeinen Boolean. Ausgeschaltet bleibt jeder Wert ein String. - Leere Zeilen überspringen: ignoriert leere Zeilen, die Tabellenprogramme oft am Ende anhängen.
- 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
csvjsonwandelt 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.