araç köşesi

CSV in JSON

Tabellendaten in ein JSON-Array umwandeln; das Trennzeichen wird gesucht

Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.

So funktioniert es

Die erste Zeile gilt als Kopfzeile und liefert die Schlüssel der JSON-Objekte. Steht das Trennzeichen auf automatisch, wird nicht mehr nur die erste Zeile geprüft, sondern mehrere Zeilen zusammen: Komma, Semikolon, Tabulator und senkrechter Strich treten gegeneinander an, und es gewinnt das Zeichen, das in jeder Zeile gleich viele Spalten ergibt — eine Kopfzelle mit einem senkrechten Strich darin zerlegt die Datei dadurch nicht mehr falsch, und der Semikolon-Export der Tabellenprogramme wird zuverlässig erkannt. Alle drei Zeilenenden werden gelesen: CR+LF von Windows, LF von macOS und Linux und das einzelne CR sehr alter Programme. Felder in Anführungszeichen werden nach RFC 4180 gelesen, ein Trennzeichen oder ein Zeilenumbruch darin zählt also als Inhalt. Ist die Zahlenumwandlung eingeschaltet, wird eine Zelle nur dann zur Zahl, wenn ihre Lesart eindeutig ist (34, -3, 12,5); mehrdeutige Schreibweisen bleiben Text, ebenso Kennzahlen mit führender Null und Ziffernfolgen über 15 Stellen. Das Ergebnis erscheint beim Tippen rechts und lässt sich kopieren oder als .json-Datei sichern.

Dieses Werkzeug ist auch als csv in json umwandeln, csv zu json, csv in json konvertieren, tabelle in json umwandeln, csv parsen online bekannt.

Was ist CSV?

CSV ist das Format, in dem Daten ein System verlassen: Kontoauszüge aus dem Online-Banking, Bestelllisten aus dem Shop, Auswertungen aus einem Analysewerkzeug kommen so heraus. Jede Zeile ist ein Datensatz, jede Zelle ein Feld, mehr Struktur gibt es nicht. Vor allem fehlt der Typ: Ob die Zelle mit dem Inhalt 34 ein Lebensalter, ein Betrag oder eine Kundennummer ist, steht nirgends in der Datei. Diese Auskunft muss die empfangende Seite erraten, und genau deshalb wird umgewandelt, sobald ein Programm und kein Mensch die Daten liest.

Was ist JSON?

JSON (JavaScript Object Notation) schreibt Daten als Schlüssel-Wert-Paare und Listen und ist die gemeinsame Sprache der Webdienste: Die meisten Schnittstellen erwarten JSON und antworten mit JSON. Zwei Eigenschaften machen die Umwandlung lohnend. JSON trägt den Typ mit sich — eine Zahl steht als Zahl da und nicht als Text, der zufällig nach einer Zahl aussieht — und es lässt sich schachteln, ein Datensatz kann also eine Liste weiterer Datensätze enthalten. Nahezu jede Programmiersprache liest es mit einem einzigen Aufruf, ohne dass vorher ein Schema erklärt werden muss.

Was ist der Unterschied zwischen CSV und JSON?

CSV ist flach: Zeilen und Spalten, keine Hierarchie, und keine Möglichkeit zu erkennen, ob die Zelle mit dem Inhalt 34 eine Zahl oder ein Text ist. JSON hält diesen Typ ausdrücklich fest und kann eine Struktur in eine andere schachteln. Die Umwandlung zählt in dem Moment, in dem Tabellendaten an etwas übergeben werden, das Struktur erwartet — eine Schnittstelle, eine Importmaske, ein Skript. Der Rückweg kostet nichts und bringt nichts: Wandeln Sie um, wenn ein Programm liest, und bleiben Sie bei CSV, wenn ein Mensch mit einem Tabellenprogramm liest.

Zahlen umwandeln oder lieber nicht?

Eingeschaltet ist die Umwandlung richtig, wenn die Spalten Mengen, Beträge oder Messwerte tragen. Das Feld wird dann zur JSON-Zahl, und die weiterverarbeitende Seite muss nicht bei jedem Zugriff erst umrechnen oder prüfen, ob eine Zeichenkette wie eine Zahl aussieht.

Abgeschaltet ist sie richtig, wenn Sie wirklich jede Zelle als Zeichenkette brauchen, etwa weil die empfangende Stelle selbst umwandelt. Für Kennzahlen ist das nicht mehr nötig: Die Postleitzahl 01067 und die Vorwahl 0049 bleiben auch bei eingeschalteter Umwandlung Text, weil eine führende Null in einer Zahl verschwinden würde. Dasselbe gilt für Ziffernfolgen über 15 Stellen, die sonst ihre letzten Stellen verlören.

Beim Dezimalzeichen ist das Werkzeug großzügig, aber nicht leichtsinnig: 12,5 und 12.5 ergeben dieselbe Zahl, weil eine Tausendergruppe immer drei Stellen hat und eine einzelne Nachkommastelle daher nur Dezimaltrennzeichen sein kann. Stehen nach dem Trennzeichen genau drei Stellen (12.500 oder 12,500), ist die Lesart offen — zwölfeinhalbtausend oder zwölf Komma fünf — und die Zelle bleibt Text. Früher wurde hier geraten, aus 12.500 wurde 12,5 und der Wert schrumpfte unbemerkt um den Faktor tausend.

  • Mengen, Beträge, Messwerte → Ja
  • Postleitzahlen und Kundennummern → Ja genügt, führende Nullen bleiben erhalten
  • Zahlen mit Tausenderpunkt (12.500) → bleiben Text, damit nichts geraten wird

Array aus Objekten oder Array aus Arrays?

Ein Array aus Objekten ist das, was die meisten Schnittstellen und Importe erwarten: Jede Zeile wird ein Datensatz aus Schlüssel-Wert-Paaren, und die Reihenfolge der Spalten spielt danach keine Rolle mehr.

Ein Array aus Arrays behält die Kopfzeile als Daten und bewahrt die Position jeder Zelle. Das ist die richtige Wahl, wenn der verarbeitende Code Spalten über ihren Index anspricht oder wenn aus der Ausgabe später wieder eine unveränderte CSV werden soll.

Was aus Ihrer Kopfzeile wird

Die Schlüssel werden wörtlich aus der Kopfzeile übernommen, samt Leerzeichen, Umlauten und Großschreibung: Aus der Spalte Straße wird der Schlüssel Straße. In JSON ist das zulässig, in manchem Programmcode aber unbequem, weil ein solcher Schlüssel nur über die Klammerschreibweise erreichbar ist. Benennen Sie solche Spalten lieber schon in der CSV um, wenn die Ausgabe weiterverarbeitet wird.

Eine leere Kopfzelle erhält einen Platzhalternamen mit ihrer Spaltennummer, damit kein Schlüssel ohne Namen bleibt. Zwei gleich benannte Spalten fallen dagegen zusammen: Der zweite Wert überschreibt den ersten, weil ein Objekt jeden Schlüssel nur einmal führen kann. Prüfen Sie die Spaltenzahl in der Ergebniszeile, wenn Ihnen im Ergebnis ein Feld fehlt.

Häufige Fragen

Wie wandle ich CSV in JSON um?

Fügen Sie die Daten in das linke Feld ein; das Ergebnis entsteht beim Tippen rechts. Sie können es kopieren oder als .json-Datei sichern.

Werden mit Semikolon getrennte Dateien unterstützt?

Ja. Das Trennzeichen wird aus mehreren Zeilen ermittelt — es gewinnt das Zeichen, das überall gleich viele Spalten ergibt —, und falls die Vermutung danebenliegt, wählen Sie Komma, Semikolon, Tabulator oder senkrechten Strich selbst aus der Liste.

Zerstört ein Komma innerhalb eines Feldes das Ergebnis?

Nein. Felder in Anführungszeichen werden korrekt gelesen; jedes Komma und jeder Zeilenumbruch darin bleibt Teil des Werts und wird nicht als Spaltengrenze behandelt.

Warum wurde 12.500 nicht in eine Zahl umgewandelt?

Weil diese Schreibweise zwei Lesarten hat: zwölftausendfünfhundert mit Tausenderpunkt oder zwölf Komma fünf null null, wenn der Punkt das Dezimalzeichen ist. Die Datei sagt nicht, welche gemeint war, und eine falsche Annahme verschiebt den Wert um den Faktor tausend, ohne dass etwas darauf hinweist. Deshalb bleibt die Zelle Text. Werte mit einer oder zwei Nachkommastellen wie 12,5 sind eindeutig und werden umgewandelt.

Werden CSV-Dateien aus sehr alten Programmen gelesen?

Ja. Auch Dateien, die ihre Zeilen nur mit einem Wagenrücklauf (CR) beenden, werden richtig in Zeilen zerlegt. In vielen Werkzeugen sehen solche Dateien wie eine einzige lange Zeile aus, ohne dass eine Fehlermeldung erscheint; hier können Sie an der Zeilenzahl in der Ergebniszeile prüfen, dass alle Datensätze angekommen sind.

Bleibt die führende Null meiner Postleitzahl erhalten?

Ja. Felder mit führender Null wie 01067 oder 0049 werden nicht in Zahlen umgewandelt, sondern als Zeichenkette geschrieben, denn eine Zahl kennt keine führende Null. Dafür müssen Sie "Zahlen umwandeln" nicht mehr abschalten.

Werden meine Daten irgendwohin gesendet?

Nein. Das Zerlegen läuft in Ihrem Browser, der eingefügte Text erreicht keinen Server, und das Werkzeug arbeitet auch ohne Internetverbindung weiter.