Methodik
Wie der Konverter auf json-csv.de arbeitet
Der Konverter liest Ihre Eingabe, bildet daraus eine Tabelle und schreibt sie im Zielformat. Alles passiert im Browser. Diese Seite beschreibt die Regeln dahinter und die Standards, auf die sie sich stützen.
Wichtiger Hinweis
json-csv.de ist ein technisches Werkzeug zur Format-Umwandlung. Eine Tabelle kann nicht jede JSON-Struktur verlustfrei abbilden. Bei Arrays, tiefer Verschachtelung und Objekten mit unterschiedlichen Feldern fasst die Ausgabe Werte zusammen oder verteilt sie auf mehrere Spalten. Prüfen Sie die Ausgabe, bevor Sie sie in andere Systeme übernehmen.
JSON zu CSV
Schritt 1: Eingabe lesen
Die Eingabe wird als JSON nach RFC 8259 gelesen. Akzeptiert werden ein Array (jedes Element wird eine Zeile), ein einzelnes Objekt (eine Zeile) und JSON Lines, also ein Objekt pro Zeile. JSON Lines erkennt der Konverter daran, dass der Text als Ganzes kein gültiges JSON ist, die erste Zeile aber schon. Elemente, die keine Objekte sind, landen in einer Spalte namens „wert“. Ein UTF-8-BOM am Textanfang wird ignoriert.
Ist das JSON ungültig, bricht der Konverter ab und nennt Zeile und Spalte der Fehlerstelle mit einer Erklärung auf Deutsch. Bei JSON Lines ist die Zeilennummer die der fehlerhaften Zeile. Zahlen werden wie in JavaScript gelesen. Ganze Zahlen über 9.007.199.254.740.991 verlieren dabei Stellen, deshalb gehören sehr lange Kennungen im JSON in Anführungszeichen.
Schritt 2: Spalten bilden
Die Spalten sind die Vereinigung aller Schlüssel über alle Zeilen, in der Reihenfolge des ersten Auftretens. Fehlt ein Schlüssel in einer Zeile, bleibt die Zelle leer.
Schritt 3: Verschachtelung auflösen
Verschachtelte Objekte werden zu Spalten mit Punkt-Pfad: aus {"adresse":{"ort":"Köln"}}
wird die Spalte adresse.ort. Für Arrays gibt es vier Modi:
- Zusammenfügen: Die Elemente stehen in einer Zelle, getrennt durch einen wählbaren Trenner (Vorgabe: Komma mit Leerzeichen). Enthält das Array Objekte oder weitere Arrays, steht es als JSON-Text in der Zelle.
- Eigene Spalten: Jedes Element bekommt eine Spalte, zum Beispiel
tags[0]undtags[1]. - Erstes Element: Nur das erste Element wird ausgegeben.
- Anzahl: Ausgegeben wird, wie viele Elemente das Array hat.
Schritt 4: CSV schreiben nach RFC 4180
Ein Feld steht in doppelten Anführungszeichen, sobald es das gewählte Trennzeichen, ein Anführungszeichen oder einen Zeilenumbruch enthält. Ein Anführungszeichen im Wert wird verdoppelt. Das Zeilenende ist standardmäßig CRLF, wie es der Standard vorsieht, auf Wunsch LF. Zahlen und true/false stehen unverändert im Text, null wird je nach Einstellung zu einem leeren Feld oder zum Text „null“. Trennzeichen zur Wahl sind Semikolon, Komma, Tabulator und Pipe.
Optional werden Texte, die mit =, +, - oder @ beginnen,
mit einem vorangestellten Apostroph abgesichert. Das verhindert, dass Excel sie als Formel
auswertet. Die Option ist standardmäßig aus, weil sie die Werte verändert.
CSV zu JSON
Der Konverter liest CSV nach RFC 4180: Felder in Anführungszeichen dürfen Trennzeichen, Zeilenumbrüche und verdoppelte Anführungszeichen enthalten. Leere Zeilen werden übersprungen. Das Trennzeichen wird an den ersten Zeilen erkannt (die Spaltenzahl soll möglichst gleichmäßig und größer als eins sein) und lässt sich von Hand überschreiben.
- Die erste Zeile dient als Schlüssel. Leere und doppelte Überschriften werden benannt beziehungsweise durchnummeriert, und Sie erhalten dazu einen Hinweis.
- Ohne Kopfzeile entsteht ein Array aus Arrays.
- Die Typerkennung wandelt eindeutige Zahlen, true/false (ohne Beachtung der Groß- und Kleinschreibung) und leere Felder (null) um. Werte mit führender Null und sehr lange Ziffernfolgen bleiben Text. Zahlen mit Dezimalkomma werden nur auf Wunsch gelesen.
- Spaltennamen wie
adresse.ortodertags[0]können wieder zu verschachtelten Objekten und Arrays werden. Gleichnamige Konflikte bleiben als flacher Schlüssel stehen. - Hat eine Zeile mehr oder weniger Felder als die Kopfzeile, bekommen Sie eine Warnung mit der ersten betroffenen Zeile.
Excel und Zeichencodierung
Die Datei ist UTF-8. Excel erkennt UTF-8 beim Doppelklick nur zuverlässig, wenn die Datei mit einem Byte-Order-Mark beginnt. Deshalb ist die Option „UTF-8 mit BOM“ beim Herunterladen vorgewählt. Das BOM kommt nur in die heruntergeladene Datei, nicht in den kopierten Text. Als Trennzeichen erwartet deutsches Excel in der Regel das Semikolon.
Verarbeitung im Browser
Die Umwandlung läuft in JavaScript auf Ihrem Gerät. Ihre Eingaben werden nicht an einen Server gesendet und nicht gespeichert. Ab etwa 1 MB Text arbeitet der Konverter in einem Web Worker, damit die Seite bedienbar bleibt. Die Tabellenvorschau zeigt die ersten 100 Zeilen, Kopieren und Herunterladen liefern immer die vollständige Ausgabe. Wer das nachprüfen möchte, kann im Netzwerk-Tab der Browser-Entwicklerwerkzeuge beobachten, dass beim Umwandeln keine Anfrage mit Ihren Daten entsteht.
Quellen und Standards
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
- JSON Lines: ein JSON-Wert pro Zeile (jsonlines.org)
- Unicode: FAQ zu UTF-8 und Byte-Order-Mark
Korrekturen
Wenn Ihnen eine fehlerhafte Umwandlung, ein nicht lauffähiges Code-Beispiel oder eine inhaltliche Unstimmigkeit auffällt, schreiben Sie an info@akara-solutions.de. Mehr dazu auf der Seite Korrekturen.
Was der Konverter nicht ist
json-csv.de ist kein Datenbank-Importer und keine ETL-Strecke. Für wiederkehrende Massenumwandlungen, Dateien jenseits des Arbeitsspeichers Ihres Browsers oder automatisierte Abläufe sind Python, jq oder Node der passendere Weg. Beispiele dafür stehen im Bereich Umwandeln.
Verantwortung
Für Methodik und Inhalte sind Mateusz Viola und Jan-Tristan Rudat (Entwicklung und Konzeption) sowie Eike-Christian Ramcke (Geschäftsführer, inhaltlich Verantwortlicher gem. § 18 Abs. 2 MStV) zuständig. Vollständige Angaben stehen im Impressum.