CSV-zu-JSON-Konverter
CSV in JSON oder JSON in CSV umwandeln, mit Trennzeichenerkennung, Kopfzeilenbehandlung und verlustfreier Typumwandlung.
Die Ausgabe erscheint hier
Was dieses Werkzeug tut
CSV ist das, was Tabellenkalkulationen, Datenbankexporte und Analyse-Dashboards ausgeben; JSON ist das, was APIs und Code wollen. Dieses Werkzeug wandelt beides in beide Richtungen um — in Ihrem Browser. Fügen Sie CSV ein und Sie erhalten ein JSON-Array: Objekte mit den Schlüsseln aus der Kopfzeile, oder einfache Arrays, wenn die Daten keine Kopfzeile haben. Wechseln Sie die Richtung, und ein JSON-Array wird wieder zu CSV, wobei jeder Wert genau so weit in Anführungszeichen gesetzt wird, wie es nötig ist.
Die Arbeit geschieht auf Ihrem Gerät, und das zählt hier: CSV ist das Format, in das Kundenlisten, Rechnungen und Analyse-Auszüge exportiert werden. Nichts davon wird irgendwohin hochgeladen.
Warum Aufteilen an Kommas nicht genügt
Der naheliegende Weg, CSV zu lesen — jede Zeile an Kommas aufteilen —, scheitert an echten Dateien, denn das Format hat einen Escape-Mechanismus. Ein in doppelte Anführungszeichen gesetztes Feld darf das Trennzeichen enthalten, ein wörtliches Anführungszeichen, geschrieben als zwei aufeinanderfolgende Anführungszeichen, und sogar Zeilenumbrüche — dann erstreckt sich ein Datensatz über mehrere Zeilen der Datei. Dieses Werkzeug setzt die tatsächlichen Regeln (RFC 4180) mit einem zeichenweisen Parser um, sodass alle drei Fälle unversehrt ankommen.
name,note Grace,"rear admiral, USN" Ada,"she said ""hello""" Alan,"two lines"
Diese vier Datensätze haben je zwei Felder, trotz der zusätzlichen Kommas, Anführungszeichen und des Zeilenumbruchs. Ist die Anführungslogik fehlerhaft — ein Feld öffnet ein Anführungszeichen und schließt es nie —, erhalten Sie Zeile und Spalte, wo das entlaufene Anführungszeichen begann, statt einer still entstellten Tabelle.
Das Trennzeichen ist oft kein Komma
Dem Namen zum Trotz sind kommagetrennte Werte häufig nicht kommagetrennt. In Gebietsschemata, in denen das Komma das Dezimaltrennzeichen ist — fast ganz Kontinentaleuropa —, exportiert Excel mit Semikolons, denn 1,50 ist dort eine Zahl. Datenbank- und Kommandozeilenwerkzeuge liefern oft tabulatorgetrennte Daten, und Log-Pipelines mögen senkrechte Striche. Fügt man so etwas in ein Werkzeug ein, das nur Kommas kennt, entsteht eine einzige sehr breite Spalte — die häufigste CSV-Frustration überhaupt.
Deshalb wird das Trennzeichen erkannt statt angenommen. Jeder Kandidat wird ausprobiert, und es gewinnt derjenige, der in jeder Zeile dieselbe Spaltenzahl ergibt — Konsistenz, nicht die höchste Zahl, denn sonst sähe eine Datei voller Dezimalkommas kommagetrennt aus. Das erkannte Trennzeichen wird immer angezeigt, und Sie können es überschreiben, wenn die Vermutung falsch ist.
Kopfzeilen und die Form der Ausgabe
Mit aktiviertem „Erste Zeile ist eine Kopfzeile" liefert diese Zeile die Schlüsselnamen, und die Ausgabe ist ein Array von Objekten — die Form, die nahezu jede API erwartet. Ohne die Option wird jede Zeile zu einem Array von Werten, was Sie für eine Datei brauchen, die direkt mit Daten beginnt.
- Eine Zeile mit weniger Feldern als die Kopfzeile erhält leere Zeichenketten für die fehlenden Spalten statt Schlüssel mit dem Wert undefined.
- Doppelte Kopfzeilennamen werden eindeutig gemacht (id, id_2, id_3), statt einander zu überschreiben — was Spalten still verschwinden ließe.
- Eine leere Kopfzelle wird zu column_2, column_3 und so weiter, damit kein Schlüssel die leere Zeichenkette ist.
- Leerzeilen werden übersprungen, wie es Tabellenkalkulations-Importe tun: Eine eingefügte Datei endet oft mit einem einzelnen Zeilenumbruch, und eine Zeile leerer Werte sieht dort wie ein Fehler aus.
Typumwandlung, die keine Daten verlieren kann
Jedes CSV-Feld ist Text. Numerisch aussehenden Text in JSON-Zahlen zu wandeln ist meist gewünscht — aber es ist auch der Weg, auf dem Daten still zerstört werden. Eine Postleitzahl 01234 wird zu 1234. Eine 20-stellige Bestellnummer wird zu einer gerundeten Fließkommazahl. Ein als 1.50 geschriebener Preis verliert seine abschließende Null.
Die hier verwendete Regel vermeidet all das ohne Liste von Sonderfällen: Ein Wert wird nur dann zur Zahl, wenn die Rückwandlung in Text exakt das Original ergibt. 42 tut das und wird umgewandelt. 01234 nicht und bleibt eine Zeichenkette. Ebenso wenig 1.50, +5, 1e5 oder jede Ganzzahl jenseits des Punktes, an dem Fließkommazahlen an Genauigkeit verlieren. Die Zeichenketten true und false werden zu Wahrheitswerten; ein leeres Feld bleibt eine leere Zeichenkette, statt zu null zu werden, denn CSV kann den Unterschied zwischen „kein Wert" und „leerer Wert" nicht ausdrücken, und einen zu erfinden hieße, Information zu erfinden.
Zurück zu CSV
In der Gegenrichtung wird ein Array von Objekten zu einer Tabelle, deren Spalten die Vereinigung aller Schlüssel sind, in der Reihenfolge ihres ersten Auftretens — so bleiben Zeilen mit unterschiedlichen Schlüsseln ausgerichtet, und ein fehlender Schlüssel ergibt eine leere Zelle. Ein Array von Arrays wird Zeile für Zeile geschrieben. Anführungszeichen werden nur dort gesetzt, wo das Format es verlangt: Ein Wert, der das Trennzeichen, ein Anführungszeichen oder einen Zeilenumbruch enthält, wird umschlossen, seine inneren Anführungszeichen verdoppelt.
Werte, die CSV nicht darstellen kann — ein verschachteltes Objekt oder Array —, werden als JSON in ihrer Zelle geschrieben, statt abgeflacht oder verworfen zu werden; so verschwindet bei einer Umwandlung nichts. Null wird zu einer leeren Zelle.
Häufig gestellte Fragen
- Warum kam meine Datei als eine einzige riesige Spalte heraus?
- Das Trennzeichen ist nicht das, welches das Werkzeug verwendet hat. Meist bedeutet das eine Semikolon-Datei (Standard für Excel in europäischen Gebietsschemata, wo das Komma das Dezimaltrennzeichen ist) oder einen tabulatorgetrennten Export. Die Erkennung fängt das normalerweise ab — sehen Sie nach, welches Trennzeichen angezeigt wird, und wählen Sie ein anderes aus der Liste, falls die Vermutung daneben lag.
- Warum ist meine ID im JSON immer noch eine Zeichenkette?
- Weil eine Umwandlung sie verändern würde. Zahlen werden nur umgewandelt, wenn die Umwandlung exakt umkehrbar ist — 01234 behält also seine führende Null, und lange IDs behalten jede Ziffer. Wenn Sie sie wirklich als Zahlen brauchen, müssen die Daten ohne führende Null geschrieben sein, oder Sie wandeln später um, wo Sie die Genauigkeit kontrollieren.
- Was passiert mit Kommas und Anführungszeichen innerhalb eines Feldes?
- Sie bleiben erhalten. Beim Einlesen darf ein Feld in Anführungszeichen Kommas, verdoppelte Anführungszeichen und sogar Zeilenumbrüche enthalten; beim Schreiben wird jeder Wert mit Trennzeichen, Anführungszeichen oder Zeilenumbruch in Anführungszeichen gesetzt und seine inneren Anführungszeichen verdoppelt. Ein Wert übersteht CSV → JSON → CSV unverändert.
- Werden meine Daten irgendwohin hochgeladen?
- Nein. Parsen und Umwandeln laufen vollständig in Ihrem Browser, sodass die Kundenlisten, Exporte und Berichte, die üblicherweise in CSV liegen, nie Ihr Gerät verlassen.