JSON, YAML, CSV: Wann welches Format und wie konvertieren
Sie laden einen Datensatz herunter und er ist im CSV-Format. Ihre API liefert JSON. Ihre Konfigurationsdatei ist in YAML. Ein Kollege sendet Ihnen eine JSON-Datei und möchte sie als Tabelle. Ein anderer Kollege übergibt Ihnen eine YAML-Konfiguration und Sie benötigen sie als JSON für ein anderes Tool.
Die Konvertierung von Datenformaten ist eine dieser Aufgaben, die trivial erscheint, bis man sie tatsächlich durchführt. Zu verstehen, wann man welches Format verwendet und wie man zwischen ihnen wechselt, spart echte Zeit.
Die drei Formate im Überblick
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
Was es ist: Ein Textformat für strukturierte Daten, das Objekte (Schlüssel-Wert-Paare), Arrays (geordnete Listen), Strings, Zahlen, Booleans und Null unterstützt.
Stärken: Maschinenlesbar, in jeder Programmiersprache breit unterstützt, verarbeitet verschachtelte Daten auf natürliche Weise, strikte Syntax verhindert Mehrdeutigkeiten.
Schwächen: Umständlich (viele geschweifte Klammern, eckige Klammern und Anführungszeichen), nicht so gut lesbar wie YAML, keine Unterstützung für Kommentare.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
Was es ist: Ein menschenfreundliches Datenserialisierungsformat, das Einrückungen statt geschweifter und eckiger Klammern verwendet. Es ist eine Obermenge von JSON, was bedeutet, dass gültiges JSON auch gültiges YAML ist.
Stärken: Extrem gut lesbar, unterstützt Kommentare, weniger visuelles Rauschen, ideal für Konfigurationsdateien.
Schwächen: Einrückungssensitiv (leicht durch falsche Abstände zu beschädigen), einige überraschende Parsing-Verhaltensweisen, langsamer zu parsen als JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
Was es ist: Ein flaches Textformat, bei dem jede Zeile ein Datensatz ist und die Werte innerhalb einer Zeile durch Kommas (oder manchmal Semikolons oder Tabulatoren) getrennt sind.
Stärken: Universell (jede Tabellenkalkulation, Datenbank und jedes Datentool unterstützt es), kompakt für tabellarische Daten, einfach zu lesen und zu erstellen.
Schwächen: Keine Unterstützung für verschachtelte Daten, keine Datentypen (alles ist ein String), kein Standard für Sonderzeichen, auf flache Tabellen beschränkt.
Wussten Sie? YAML ist technisch gesehen eine Obermenge von JSON. Das bedeutet, dass jedes gültige JSON-Dokument automatisch ein gültiges YAML-Dokument ist. Sie können JSON in einen YAML-Parser einfügen und es wird funktionieren. Umgekehrt geht das nicht — YAMLs Funktionen (Kommentare, Anker, mehrzeilige Strings) haben kein JSON-Äquivalent.
Wann welches Format verwenden
| Anwendungsfall | Bestes Format | Warum |
|---|---|---|
| API-Anfragen und -Antworten | JSON | Industriestandard, jede Sprache hat native Unterstützung |
| Konfigurationsdateien | YAML | Menschenlesbar, unterstützt Kommentare zur Dokumentation |
| Tabellendaten | CSV | Öffnet sich direkt in Excel, Google Sheets usw. |
| Datenbankexporte | CSV | Flache tabellarische Daten entsprechen direkt Zeilen und Spalten |
| Komplexe verschachtelte Daten | JSON oder YAML | CSV kann keine Verschachtelung darstellen |
| Datenaustausch zwischen Systemen | JSON | Eindeutiges Parsing, strikte Spezifikation |
| Manuell bearbeitete Konfiguration | YAML | Einfacher von Hand zu lesen und zu bearbeiten |
| Einfache Datenlisten | CSV | Leichtgewichtig, kein Overhead |
Zwischen Formaten konvertieren
JSON zu YAML
Dies ist die häufigste Konfigurationskonvertierung. Sie haben eine JSON-Konfiguration von einem Tool und benötigen YAML für ein anderes. Die Konvertierung ist unkompliziert, da YAML alles unterstützt, was JSON kann.
{"server": {"host": "0.0.0.0", "port": 8080}}
Wird zu:
server:
host: 0.0.0.0
port: 8080
YAML zu JSON
Von YAML zu JSON ist ebenfalls einfach, aber Sie verlieren Kommentare (JSON unterstützt keine) und das Ergebnis ist umfangreicher.
JSON zu CSV
Dies funktioniert gut für flache JSON-Arrays (Arrays von Objekten mit denselben Schlüsseln). Jedes Objekt wird zu einer Zeile und jeder Schlüssel zu einer Spaltenüberschrift.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Wird zu:
name,age
Alice,30
Bob,25
Warnung Die JSON-zu-CSV-Konvertierung scheitert, wenn das JSON verschachtelte Objekte oder Arrays enthält. CSV ist flach — es hat keine Möglichkeit, ein „skills"-Array oder ein verschachteltes „address"-Objekt darzustellen. Verschachtelte Daten müssen entweder abgeflacht (address.city, address.country als separate Spalten) oder als String innerhalb einer CSV-Zelle serialisiert werden.
CSV zu JSON
Jede Zeile wird zu einem Objekt, wobei die Spaltenüberschriften als Schlüssel dienen. Das ist sauber für einfache tabellarische Daten.
CSV zu YAML
Weniger häufig, folgt aber derselben Logik: Jede Zeile wird zu einem YAML-Mapping und die gesamte Datei zu einer YAML-Sequenz.
Häufige Stolperfallen
CSV-Kodierungsprobleme
CSV-Dateien können verschiedene Zeichenkodierungen verwenden (UTF-8, Latin-1, Windows-1252). Wenn Sie eine CSV öffnen und verstümmelte Zeichen wie „München" statt „München" sehen, handelt es sich um eine Kodierungsabweichung. Verwenden Sie nach Möglichkeit immer UTF-8.
CSV-Trennzeichen-Verwirrung
Nicht alle CSVs verwenden Kommas. Europäische CSVs verwenden oft Semikolons, da Kommas in vielen europäischen Zahlenformaten als Dezimaltrennzeichen verwendet werden. Tab-getrennte Werte (TSV) sind eine weitere häufige Variante.
YAML-Einrückungsfehler
YAML verwendet Einrückungen (Leerzeichen, niemals Tabulatoren) zur Strukturdefinition. Eine inkonsistente Einrückung oder das Mischen von Tabulatoren und Leerzeichen führt zu Parsing-Fehlern oder stillschweigenden Fehlinterpretationen. Verwenden Sie genau 2 Leerzeichen pro Einrückungsebene und konfigurieren Sie Ihren Editor so, dass er Leerzeichen anstelle von Tabulatoren einfügt.
Warnung In YAML wird der String no als Boolean false geparst und yes als true. Der String 1.0 wird als Zahl geparst. Wenn Sie die wörtlichen Strings „no", „yes" oder „1.0" meinen, müssen Sie sie in Anführungszeichen setzen: "no", "yes", "1.0". Dies ist einer der berüchtigtsten YAML-Fallstricke.
JSON-Komma am Ende
JSON erlaubt kein abschließendes Komma. Dies ist in JavaScript gültig, aber in JSON ungültig:
{"name": "Alice", "age": 30,} // Ungültiges JSON: abschließendes Komma
Leistung bei großen Dateien
Für sehr große Datensätze (Millionen von Zeilen) ist CSV effizienter als JSON oder YAML, da es minimalen Overhead pro Datensatz hat. JSON fügt für jeden Wert geschweifte Klammern und Anführungszeichen hinzu, was die Dateigröße bei großen tabellarischen Daten erheblich vergrößert.
Praktische Tools zur Konvertierung
Für schnelle Einzelkonvertierungen sind browserbasierte Tools die schnellste Option. Sie fügen Ihre Daten ein oder laden sie hoch, wählen das Zielformat und erhalten sofort das Ergebnis.
Tipp Konvertieren Sie sofort zwischen JSON-, YAML- und CSV-Formaten: Datenformate konvertieren. Fügen Sie Ihre Daten ein, wählen Sie das Zielformat und kopieren oder laden Sie das Ergebnis herunter.
Für die Arbeit mit JSON im Speziellen ist ein Formatierer, der Ihr JSON validiert und einrückt, unverzichtbar:
- JSON-Formatierer — JSON validieren, formatieren und minifizieren
- JSON-zu-CSV-Konverter — JSON-Arrays in CSV konvertieren
- YAML-JSON-Konverter — zwischen YAML und JSON konvertieren
- CSV-Betrachter — CSV-Dateien anzeigen und erkunden
Konvertieren Sie jetzt Ihre Daten:
Alle Tools sind kostenlos und funktionieren direkt in Ihrem Browser.