HandyTools Hub

CSV-zu-JSON-Konverter

Konvertieren Sie CSV-Daten sofort in ein JSON-Array von Objekten

Tipp: Sie können auch eine .csv-Datei auf dieses Feld ziehen.

Dieser CSV-zu-JSON-Konverter verwandelt komma-, semikolon- oder tabulatorgetrennten Text in ein JSON-Array aus Objekten. Er erkennt das Trennzeichen automatisch, wendet die Quoting-Regeln von RFC 4180 an und kann Zahlen und boolesche Werte aus String-Feldern ableiten. Die Ausgabe ist formatiert, kopierbar und herunterladbar, und die gesamte Konvertierung läuft im Browser.

Verwendung

  1. Fügen Sie CSV-Text in das Eingabefeld ein oder ziehen Sie eine .csv-Datei darauf. Eine abgelegte Datei wird gelesen und automatisch konvertiert.
  2. Wählen Sie, ob die erste Zeile die Schlüssel liefert und ob Werte, die wie Zahlen oder boolesche Werte aussehen, umgewandelt werden sollen.
  3. Klicken Sie auf In JSON konvertieren. Das erkannte Trennzeichen erscheint zusammen mit der Zeilen- und Spaltenanzahl.
  4. Kopieren Sie das formatierte JSON oder laden Sie es als .json-Datei herunter.

So funktioniert die Trennzeichen-Erkennung

Nur die erste Zeile wird untersucht. Der Code durchläuft diese Zeile Zeichen für Zeichen, verfolgt, ob er sich in einem Feld in Anführungszeichen befindet, und zählt Kommas, Semikolons und Tabulatoren außerhalb von Anführungszeichen. Der Kandidat mit der höchsten Zählung gewinnt; wird nichts gefunden oder herrscht Gleichstand, wird das Komma verwendet. Da die Erkennung nur die erste Zeile liest, ist eine Datei, deren erste Zeile ein einzelner Wert ohne Anführungszeichen ist und deren spätere Zeilen kommagetrennt sind, ein Fall für die manuelle Prüfung — der Parser fällt auf das Komma zurück, was meist richtig ist, aber eine Datei, deren erste Zeile ein Trennzeichen und deren Datenzeilen ein anderes verwenden, lässt sich nicht zuverlässig erkennen.

Typinferenz in der Praxis

Mit aktivierter Inferenz prüft der Konverter jedes Feld gegen eine kleine Menge von Mustern. Alles, was nicht passt, einschließlich leerer Strings, bleibt ein String:

RohfeldUmgewandelt zuGrund
4242 (Zahl)Ganzzahlmuster
-7-7 (Zahl)Muster für negative Ganzzahl
3.143.14 (Zahl)Dezimalmuster
true / falsetrue / false (boolesch)wörtliche Übereinstimmung
0077 (Zahl)führende Nullen werden entfernt
1e5"1e5" (String)Exponentenschreibweise passt nicht
+5"+5" (String)Pluszeichen passt nicht
(leer)"" (String)leer bleibt leer

Das Muster ist bewusst in mancher Hinsicht konservativ und in anderer nachlässig: Es lässt wissenschaftliche Notation unberührt, entfernt aber stillschweigend führende Nullen aus einer Kennung.

Praxisbeispiele

Eine kleine kommagetrennte Datei mit Kopfzeile und aktivierter Inferenz:

name,age,active
Alice,30,true
Bob,25,false

wird zu:

[
  { "name": "Alice", "age": 30, "active": true },
  { "name": "Bob", "age": 25, "active": false }
]

Dieselben Daten mit ausgeschalteter Inferenz würden "age": "30", "active": "true" und so weiter ergeben — jeder Wert ein String.

Ein semikolongetrennter Export mit kennungsartigen Werten:

id;zip
007;01234

Die Erkennung wählt das Semikolon aus der ersten Zeile. Mit eingeschalteter Inferenz lautet das Ergebnis [{"id":7,"zip":1234}], was für IDs fast sicher falsch ist. Mit ausgeschalteter Inferenz ergibt sich [{"id":"007","zip":"01234"}] — die richtige Wahl für diese Art von Spalte.

Randfälle und häufige Fehler

  • Die Inferenz bei ID-Spalten eingeschaltet lassen. Postleitzahlen, Telefonnummern und nullaufgefüllte IDs verlieren alle ihre führenden Nullen. Das ist die mit Abstand häufigste Überraschung bei diesem Tool.
  • Darauf verlassen, dass eine Kopfzeile vorhanden ist. Lassen Sie den Kopfzeilen-Schalter an, obwohl die Datei keine Kopfzeile hat, wird die erste Datenzeile als Schlüssel verbraucht. Hat die Datei eine Kopfzeile und Sie schalten den Schalter aus, wird diese Zeile in die Daten dupliziert.
  • Erwarten, dass zusätzliche Spalten überleben. Felder jenseits der Spaltenanzahl der Kopfzeile werden verworfen und nicht angehängt, eine unregelmäßige Datei verliert also stillschweigend Daten am Ende.
  • Annehmen, Anführungszeichen seien immer speziell. Ein Anführungszeichen startet ein Feld in Anführungszeichen nur am Feldanfang; mitten im Feld bleibt es wörtlich. Manche Tools verlassen sich darauf, das Verhalten ist also beabsichtigt.
  • Einen abschließenden Zeilenumbruch als Zeile behandeln. Ein einzelnes abschließendes Zeilenende erzeugt kein zusätzliches leeres Objekt, eine wirklich leere Zeile in der Mitte der Datei dagegen schon eine Zeile mit einem einzigen leeren String.

Praktische Szenarien

Der Konverter passt am besten, wenn Sie schnell strukturierte Daten brauchen und kein Parsing-Skript schreiben möchten. Häufige Anwendungen sind das Umwandeln eines Tabellenexportes in ein JSON-Array für eine API-Anfrage, das Vorbereiten von Seed-Daten für eine Datenbank, das Bauen von Fixtures für Tests, bei denen Sie genau steuern wollen, welche Felder Strings und welche Zahlen sind, und schlicht das Lesen eines unbekannten Exportes in lesbarerer Form. Er ist auch für einmalige Datenbereinigung nützlich: Datei einfügen, Inferenz ausschalten, und die Ausgabe bewahrt jeden Wert exakt so, wie er geschrieben wurde, damit Sie prüfen können, was die Quelle tatsächlich enthält.

Arbeiten mit großen oder ungewöhnlichen Dateien

Das Parsen ist ein einziger Durchlauf, aber der gesamte Text und das resultierende Array liegen im Speicher, mehrere Megabyte große Dateien können also langsam werden oder an Speichergrenzen des Browsers stoßen. Sehr große Exporte lassen sich meist besser mit einem Streaming-Parser verarbeiten. Achten Sie auf eine UTF-8-Byte-Order-Mark am Anfang von Excel-gespeicherten Dateien: Die BOM kann am ersten Kopfzeilenschlüssel hängen bleiben, eine Spalte namens name erscheint dann möglicherweise als \ufeffname. Erneutes Speichern als UTF-8 ohne BOM oder das Entfernen des ersten Zeichens behebt das. Es wird nur UTF-8-Eingabe verarbeitet — andere Kodierungen werden nicht konvertiert, akzentuierte Zeichen können also bereits beschädigt ankommen. Und weil die Trennzeichen-Erkennung nur die erste Zeile liest, lässt sich eine Datei, deren erste Zeile ein Trennzeichen und deren Datenzeilen ein anderes verwenden, nicht korrekt aufteilen; legen Sie die Daten beiseite und normalisieren Sie sie vor der Konvertierung.

Verwandte Tools

Häufig gestellte Fragen

Welches Trennzeichen gewinnt, wenn die erste Zeile mehrere Kommas, Semikolons und Tabulatoren enthält?

Die Erkennung zählt jeden Kandidaten nur in der ersten Zeile und ignoriert Zeichen innerhalb von Feldern in Anführungszeichen; der Kandidat mit der höchsten Zählung gewinnt. Gleichstand geht zugunsten des Kommas aus, weil Kommas zuerst geprüft werden, eine Datei mit gleich vielen Kommas und Semikolons gilt also als kommagetrennt. Das Komma ist auch der Rückfallwert, wenn kein Kandidat auftaucht.

Wandelt die Typinferenz wissenschaftliche Notation oder ein führendes Pluszeichen um?

Nein. Die Inferenz erkennt nur das Muster aus optionalem Minus, Ziffern und optionalem Dezimalteil, deshalb werden 42 und 3,14 zu Zahlen, während 1e5, +5 und 3. Strings bleiben. Enthält eine Spalte solche Formen, schalten Sie die Inferenz am besten ab und wandeln Sie die Werte nach Prüfung des JSON selbst um.

Warum haben meine Postleitzahlen mit führender Null ihre Nullen verloren?

Die Typinferenz ist standardmäßig an, und 01234 passt auf das Zahlenmuster, wird also zu 1234. Dasselbe passiert mit 007, das zu 7 wird. Schalten Sie die Inferenz immer ab, wenn eine Spalte Postleitzahlen, Telefonnummern, Kontonummern oder ähnliche Kennungen enthält, dann bleibt jedes Feld exakt so ein String, wie es geschrieben wurde.

Was passiert mit einem Anführungszeichen mitten in einem nicht in Anführungszeichen gesetzten Feld?

Ein doppeltes Anführungszeichen öffnet ein Feld in Anführungszeichen nur, wenn es ganz am Anfang dieses Feldes steht. Überall sonst bleibt das Anführungszeichen ein wörtliches Zeichen, ein Wert wie 12 Zoll bleibt also erhalten, statt den Rest der Zeile zu verschlucken. Felder in Anführungszeichen, die mit einem Anführungszeichen beginnen, folgen weiterhin RFC 4180, einschließlich verdoppelter Anführungszeichen als wörtliche Zeichen.

Wie werden Zeilen mit der falschen Spaltenanzahl behandelt?

Kurze Zeilen werden mit leeren Strings aufgefüllt, damit jedes Objekt dieselben Schlüssel hat. Zusätzliche Felder jenseits der Kopfzeilenspalten werden verworfen, stellen Sie also sicher, dass die Kopfzeile die breiteste Zeile der Datei beschreibt. Ist die Kopfzeile deaktiviert, werden die Schlüssel als column_1, column_2 und so weiter erzeugt.

Was bewirkt das Ausschalten des Kopfzeilen-Schalters?

Die erste Zeile wird nicht mehr als Schlüssel behandelt, sondern zu Daten. Jede Zeile wird in ein Objekt mit den Schlüsseln column_1, column_2 und so weiter umgewandelt, und die Zeilenzahl schließt die frühere Kopfzeile mit ein. Das ist nützlich für Dateien ohne Kopfzeile wie reine Zahlengitter.

Geprüft vom HandyTools-Hub-Team · Zuletzt aktualisiert