CSV-zu-JSON-Konverter
CSV-Datei hochladen oder Daten einfügen, um ins JSON-Format zu konvertieren
CSV-Datei hier ablegen oder klicken zum Auswählen
Was ist CSV zu JSON?
CSV zu JSON ist ein Online-Datenformat-Konvertierungstool, das CSV-Daten (Comma-Separated Values) in das JSON-Format (JavaScript Object Notation) konvertiert.
CSV ist ein gängiges tabellarisches Datenformat, das weit verbreitet in Tabellenkalkulationen und Datenbankexporten verwendet wird. JSON ist das beliebteste Datenaustauschformat in modernen Webanwendungen, bekannt für seine klare Struktur und einfache Analyse.
Mit diesem Tool können Sie CSV-Daten schnell in JSON-Arrays oder -Objekte konvertieren und in der Programmierung und Datenverarbeitung verwenden.
CSV zu JSON wirkt einfach, aber Trennzeichen, Quotes, Zeilenumbrüche in Feldern, leere Werte und Zeichencodierung entscheiden über die Qualität des Ergebnisses. Spaltenüberschriften werden meist zu JSON-Schlüsseln, daher sollten doppelte oder unklare Namen vorher bereinigt werden. Für APIs oder Datenmigrationen müssen Datentypen, Zahlenformate, Datumswerte und null-Regeln anschließend geprüft werden.Anleitung
Anleitung
- CSV-Daten in das linke Eingabefeld einfügen oder eingeben
- Passendes Trennzeichen wählen (Komma ist Standard)
- Wählen Sie, ob die erste Zeile als Feldnamen verwendet werden soll
- Das rechte Panel generiert automatisch das JSON-Ergebnis
CSV-Parsing-Hinweise
- Überprüfen Sie Trennzeichen, Anführungszeichenbehandlung und Kopfzeileneinstellungen, bevor Sie der JSON-Ausgabe vertrauen.
- Große CSV-Dateien können Leerzeilen, eingebettete Kommas oder Zeilenumbrüche in Anführungszeichen gesetzten Zellen enthalten. Prüfen Sie nach der Konvertierung einige Zeilen in der Vorschau.
Anwendungsfälle
Technisches Prinzip
Das CSV-Parsing folgt der IETF RFC 4180-Grammatik: Jeder Datensatz endet mit CRLF (einige Dialekte akzeptieren LF oder CR), jeder Datensatz enthält Felder, getrennt durch ein Trennzeichen (Komma in RFC, aber TSV, Semikolon und Pipe sind weit verbreitete Varianten), und jedes Feld, das das Trennzeichen, CR, LF oder ein doppeltes Anführungszeichen enthält, MUSS in doppelte Anführungszeichen eingeschlossen werden, wobei interne doppelte Anführungszeichen durch Verdopplung escaped werden (Hallo "Welt" wird zu "Hallo ""Welt"""). Der Parser dieser Seite ist eine Zustandsmaschine mit vier Zuständen - field_start, in_unquoted, in_quoted, after_quote - und verarbeitet die Eingabe in einem einzigen O(n)-Durchlauf über den Zeichenstrom, sodass eine 10 MB CSV mit 100.000 Zeilen auf einem typischen Laptop in deutlich unter einer Sekunde fertig ist, ohne jemals ein intermediäres Token-Array pro Zeile zu allozieren. Die Kodierung erfordert explizite Behandlung: Ein UTF-8 BOM (EF BB BF) am Dateianfang wird vor dem Parsen entfernt, sonst würde der erste Kopfzeilenname unsichtbar mit dem U+FEFF-Codepunkt beginnen und nachfolgende JSON.parse-Gleichheitsprüfungen würden fehlschlagen. Excel-Exporte unter Windows verwenden noch CRLF und oft UTF-8 mit BOM, während macOS Numbers und die meisten Unix-Tools standardmäßig LF ohne BOM verwenden. Europäische Tabellenkalkulationen exportieren häufig semikolon-getrennte Dateien, weil das Komma in vielen Locales ein Dezimaltrennzeichen ist (49,90 EUR statt 49.90), weshalb der Trennzeichen-Selektor standardmäßig auf Komma steht, aber Tabulator, Semikolon und Pipe als erstklassige Optionen anbietet. Der Schalter "Erste Zeile als Kopfzeile" ändert die Ausgabestruktur von einem Array von Objekten (Kopfzeilenschlüssel -> String-Werte) zu einem Array von Arrays und entspricht so den beiden gängigen Aufnahmemustern für nachgelagerten Code. Feldwerte werden als Strings ausgegeben, nicht als abgeleitete Typen - CSV hat kein Schema, daher bleiben 01234 (eine nullgepufferte ID), 1e10 (eine telefonnummerartige Zeichenkette, die JSON.parse zu einer Zahl koerzieren würde) und 2024-13-45 (ein fehlerhaftes Datum) unverändert. Das ist beabsichtigt: Eine nachgelagerte typisierte API kann zod, Joi oder eine handgebaute Koerzierungsschicht mit expliziten Regeln anwenden, aber sie kann eine führende Null nicht wiederherstellen, die der Konverter bereits entfernt hat. Die Ausgabe wird über JSON.stringify(rows, null, 2) erzeugt und durch einen Syntax-Highlighter gerendert; die Quell-CSV wird mit FileReader.readAsText() auf einem Blob gelesen und nie an ein Backend hochgeladen, sodass HR-Exporte, Finanzbuchhaltungen und Kundenlisten umgeformt werden können, ohne die Browser-Sitzung zu verlassen.
- RFC 4180-Grammatik: Felder mit Trennzeichen/CR/LF/" müssen gequotet werden; interne Anführungszeichen als "" verdoppelt.
- Einzel-Durchlauf O(n)-Zustandsmaschine mit Zuständen: field_start, in_unquoted, in_quoted, after_quote.
- UTF-8 BOM (EF BB BF / U+FEFF) wird am Dateianfang entfernt, um Kopfzeilenschlüssel sauber zu halten.
- Europäische Tabellenkalkulationen verwenden oft ; als Trennzeichen, da , das Dezimaltrennzeichen in den Locale-Einstellungen ist.
- Erste-Zeile-als-Kopfzeile schaltet die Ausgabe zwischen Array<Record<string,string>> und Array<Array<string>> um.
- Alle Feldwerte bleiben Strings; nullgepufferte IDs wie 01234 überleben nur, weil keine Tyinferenz läuft.
- FileReader.readAsText() verarbeitet den Blob lokal; nichts wird hochgeladen - sicher für HR/Finanz-/Staging-Exporte.
Beispiele
Einfache CSV mit Kopfzeile -> JSON-Array von Objekten
CSV-Eingabe:
name,age,city
Alice,28,New York
Bob,35,London
Carol,42,Tokyo
JSON-Ausgabe:
[
{ "name": "Alice", "age": "28", "city": "New York" },
{ "name": "Bob", "age": "35", "city": "London" },
{ "name": "Carol", "age": "42", "city": "Tokyo" }
]Felder in Anführungszeichen mit eingebetteten Kommas
CSV-Eingabe:
id,product,description
1,"Notebook, A5","Hard cover, 200 pages"
2,Pen,"Black ink, 0.5mm"
JSON-Ausgabe:
[
{ "id": "1", "product": "Notebook, A5", "description": "Hard cover, 200 pages" },
{ "id": "2", "product": "Pen", "description": "Black ink, 0.5mm" }
]TSV (tabulatorgetrennt) ohne Kopfzeile
TSV-Eingabe (Trennzeichen = Tab, Kopfzeile aus):
101 Alice 98.5
102 Bob 87.0
103 Carol 92.3
JSON-Ausgabe:
[
["101", "Alice", "98.5"],
["102", "Bob", "87.0"],
["103", "Carol", "92.3"]
]Semikolon als Trennzeichen (europäische Tabellenexporte)
CSV-Eingabe (Trennzeichen = ;):
product;price_eur;stock
Keyboard;49,90;120
Mouse;19,90;345
JSON-Ausgabe:
[
{ "product": "Keyboard", "price_eur": "49,90", "stock": "120" },
{ "product": "Mouse", "price_eur": "19,90", "stock": "345" }
]
Hinweis: Zahlen bleiben als Zeichenketten – konvertieren Sie sie in Ihrem nachgelagerten Code.FAQ
Welche CSV-Varianten werden unterstützt?
Standard-CSV nach RFC 4180: Komma als Trenner, doppelte Anführungszeichen zur Feldquotierung, doppelte doppelte Anführungszeichen als Escape. Tab-getrennte (TSV) und Semikolon-getrennte CSVs funktionieren über die Wahl eines anderen Trenners. Verschiedene Zeilenumbrüche (LF/CRLF/CR) werden automatisch verarbeitet.
Wie werden Header behandelt?
Wenn du 'Erste Zeile ist Header' aktivierst, verwendet der Parser jede Header-Zelle als JSON-Schlüssel der Spalte – das Ergebnis ist ein Array von Objekten. Ohne Header erzeugt der Parser ein Array von Arrays. Leere Header-Zellen erhalten einen numerischen Platzhalter-Schlüssel.
Wie werden Datentypen erkannt?
Standardmäßig ist alles ein String. Schalte 'Automatische Typen' ein, um Zahlen, Booleans (true/false) und null erkennen zu lassen. Zahlen mit führenden Nullen (00123, 0042) bleiben Strings, damit das Präfix erhalten bleibt – nutze das für IDs und Postleitzahlen.
Was, wenn ein Feld ein Komma oder einen Zeilenumbruch enthält?
Setze das Feld in doppelte Anführungszeichen: "Smith, John" oder "line one\nline two". Eingebettete doppelte Anführungszeichen werden verdoppelt: "He said ""hi""". Der Parser kann das alles; bricht eine Zeile, sind meist unausgeglichene Anführungszeichen die Ursache.
Läuft die Konvertierung lokal oder auf einem Server?
Lokal. Das Parsen läuft in deinem Browser per JavaScript. Eingefügtes CSV verlässt die Seite nicht. Sehr große Dateien können den Browser ausbremsen; übersteigt der Inhalt zig MB, vorher aufteilen.
Bleibt die Spaltenreihenfolge erhalten?
Ja – jede Zeile wird zu einem JSON-Objekt, dessen Schlüsselreihenfolge der CSV-Header-Reihenfolge entspricht, und JSON.stringify in modernen Engines erhält die Einfügereihenfolge. Liest dein nachgeschaltetes Tool JSON ohne Erhalt der Einfügereihenfolge, ist das dessen Einschränkung.
Wie gehe ich mit Datumsangaben um?
Datumsangaben bleiben Strings. Die Auto-Typ-Erkennung parst keine beliebigen Datumsformate, weil es keinen eindeutigen Standard gibt (1/2/2024 ist in den USA der 2. Januar, in Europa der 1. Februar). Konvertiere Datumsangaben vor dem Import in ISO 8601 (YYYY-MM-DD), wenn du nachgelagert native Date-Objekte brauchst.