Ob Sie eine Webanwendung konfigurieren, Daten zwischen Diensten austauschen, einen Tabellenkalkulationsexport analysieren oder eine API-Antwort lesen — Sie werden auf Daten stoßen, die in strukturierten Textformaten gespeichert sind. Die vier häufigsten sind JSON, YAML, CSV und XML.
Jedes Format wurde mit unterschiedlichen Zielen entwickelt, und die richtige Wahl hängt von Ihrem Anwendungsfall ab. Dieser Artikel erklärt, was jedes Format ist, wie es aussieht, wann man es verwendet und wie sie sich vergleichen.
JSON — JavaScript Object Notation
JSON hat sich zum dominierenden Datenaustauschformat im Web entwickelt. Trotz seines Namens ist es sprachunabhängig und wird überall eingesetzt.
Syntaxbeispiel:
{
"name": "Alice Martin",
"age": 34,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Lyon",
"country": "France"
}
}
Wesentliche Eigenschaften:
- Schlüssel-Wert-Paare mit einer sauberen, lesbaren Syntax
- Unterstützt Strings, Zahlen, Booleans, Arrays, Objekte und null
- Keine Kommentare im Standard-JSON erlaubt
- Strenge Syntax — nachgestellte Kommas und einfache Anführungszeichen sind Fehler
Häufige Anwendungsfälle: REST-APIs, Konfigurationsdateien (package.json, tsconfig.json), NoSQL-Datenbanken (MongoDB), Datenaustausch zwischen Frontend und Backend.
Gut zu wissen. Die strenge Syntax von JSON ist Stärke und Schwäche zugleich. Sie macht das Parsing zuverlässig und eindeutig, bedeutet aber auch, dass ein einziges fehlendes Komma oder ein überzähliges nachgestelltes Komma die gesamte Datei ungültig macht.
YAML — YAML Ain't Markup Language
YAML wurde als das am besten von Menschen lesbare Datenserialisierungsformat konzipiert. Es verwendet Einrückungen statt Klammern und ist besonders für Konfigurationsdateien beliebt.
Syntaxbeispiel:
name: Alice Martin
age: 34
skills:
- Python
- SQL
- Docker
address:
city: Lyon
country: France
Wesentliche Eigenschaften:
- Einrückungsbasierte Struktur (keine Klammern oder geschweifte Klammern)
- Unterstützt Kommentare mit
# - Unterstützt alle JSON-Datentypen und mehr (Datumsangaben, mehrzeilige Strings)
- Leerzeichenempfindlich — falsche Einrückung macht die Datei ungültig
Häufige Anwendungsfälle: Docker-Compose-Dateien, Kubernetes-Manifeste, CI/CD-Pipelines (GitHub Actions, GitLab CI), Ansible-Playbooks, Hugo/Jekyll-Konfiguration.
YAML ist eine Obermenge von JSON, das heißt, jedes gültige JSON-Dokument ist auch gültiges YAML. Allerdings kann YAMLs Flexibilität ein zweischneidiges Schwert sein — seine implizite Typumwandlung (zum Beispiel wird yes als Boolean true interpretiert, oder 3.10 wird zu 3.1) hat schon viele subtile Fehler verursacht.
CSV — Comma-Separated Values
CSV ist das einfachste strukturierte Datenformat. Es speichert tabellarische Daten als Klartext, wobei jede Zeile ein Datensatz ist und die Werte durch Kommas (oder manchmal Semikolons, Tabs oder andere Trennzeichen) getrennt werden.
Syntaxbeispiel:
name,age,city,country
Alice Martin,34,Lyon,France
Bob Dupont,28,Paris,France
Carol Smith,41,London,UK
Wesentliche Eigenschaften:
- Extrem einfach — nur Text mit Trennzeichen
- Keine Datentypen — alles ist ein String
- Keine Standardmethode zur Darstellung verschachtelter Daten
- Kein offizieller universeller Standard (RFC 4180 existiert, wird aber nicht universell befolgt)
- Dateigrößen sind sehr klein
Häufige Anwendungsfälle: Tabellenkalkulationsexporte, Datenbankimporte/-exporte, Datenanalyse (pandas, R), einfacher Datenaustausch, Log-Dateien.
Die Einfachheit von CSV ist seine größte Stärke und zugleich seine größte Einschränkung. Es eignet sich perfekt für flache, tabellarische Daten, kann aber hierarchische Strukturen nicht darstellen. Sonderfälle (Kommas in Werten, mehrzeilige Felder, Zeichenkodierungsprobleme) machen das Parsing komplexer als es zunächst erscheint.
XML — Extensible Markup Language
XML war das dominierende Datenaustauschformat, bevor JSON es ablöste. Es verwendet eine Tag-basierte Syntax ähnlich HTML und unterstützt komplexe Funktionen wie Schemas, Namensräume und Transformationen.
Syntaxbeispiel:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>Alice Martin</name>
<age>34</age>
<skills>
<skill>Python</skill>
<skill>SQL</skill>
<skill>Docker</skill>
</skills>
<address>
<city>Lyon</city>
<country>France</country>
</address>
</person>
Wesentliche Eigenschaften:
- Tag-basierte Struktur mit öffnenden und schließenden Tags
- Unterstützt Attribute, Namensräume, Schemas (XSD) und Transformationen (XSLT)
- Unterstützt Kommentare
- Sehr ausführlich im Vergleich zu anderen Formaten
- Extrem gut definierter Standard mit strenger Validierung
Häufige Anwendungsfälle: SOAP-Webdienste, Unternehmensintegrationen, Dokumentformate (DOCX, SVG, RSS), Konfigurationsdateien in Java/.NET-Ökosystemen, Datenaustausch in Behörden und Finanzwesen.
XML ist ausführlicher als JSON oder YAML, aber seine Schema-Validierungsfähigkeiten machen es unverzichtbar in Kontexten, in denen Datenintegrität und formale Verträge zwischen Systemen entscheidend sind.
Vergleichsübersicht
| Eigenschaft | JSON | YAML | CSV | XML |
|---|---|---|---|---|
| Lesbarkeit | Gut | Ausgezeichnet | Gut (tabellarisch) | Mittel |
| Ausführlichkeit | Gering | Gering | Sehr gering | Hoch |
| Kommentare | Nein | Ja | Nein | Ja |
| Verschachtelte Daten | Ja | Ja | Nein | Ja |
| Datentypen | Einfach | Umfangreich | Keine (alles Strings) | Via Schema |
| Schema-Validierung | JSON Schema | Kein Standard | Nein | XSD |
| Dateigröße | Klein | Klein | Kleinste | Groß |
| Parsing-Geschwindigkeit | Schnell | Mittel | Schnell | Mittel |
| Hauptdomäne | Web-APIs | DevOps-Konfiguration | Daten/Tabellen | Enterprise |
Wann welches Format verwenden
- Wählen Sie JSON, wenn Sie Web-APIs erstellen, Konfigurationen für JavaScript-/TypeScript-Projekte speichern oder Daten zwischen Diensten austauschen. Es ist die Standardwahl für die meisten modernen Anwendungen.
- Wählen Sie YAML, wenn Sie Konfigurationsdateien schreiben, die Menschen häufig lesen und bearbeiten. Seine Lesbarkeit und Kommentarunterstützung machen es ideal für DevOps und Infrastructure-as-Code.
- Wählen Sie CSV, wenn Sie mit tabellarischen Daten arbeiten, aus Tabellenkalkulationen oder Datenbanken importieren/exportieren oder die Dateigröße minimal sein muss. Vermeiden Sie es für alles Hierarchische.
- Wählen Sie XML, wenn Sie mit Enterprise-Systemen, SOAP-APIs oder Kontexten arbeiten, die formale Schema-Validierung erfordern. Es ist auch die richtige Wahl für dokumentenorientiertes Markup (wie SVG oder RSS).
Zwischen Formaten konvertieren
Die Konvertierung zwischen diesen Formaten ist eine häufige Aufgabe. Einige Dinge sind dabei zu beachten:
- JSON zu YAML (und umgekehrt) ist in der Regel verlustfrei, da YAML eine Obermenge von JSON ist.
- CSV zu JSON/YAML funktioniert gut für flache Daten, erfordert aber Entscheidungen über die Struktur bei verschachtelter Ausgabe.
- XML zu JSON kann Informationen verlieren (Attribute, Namensräume, Reihenfolge), da JSON keine entsprechenden Konzepte hat.
- Jedes Format zu CSV funktioniert nur, wenn die Daten flach sind oder sinnvoll abgeflacht werden können.
Tipp. Überprüfen Sie bei der Konvertierung zwischen Formaten immer die Ausgabe. Automatische Konvertierungen können stillschweigend Daten verlieren, insbesondere bei XML-Attributen, YAML-Typumwandlung oder CSV-Zeichenkodierungs-Sonderfällen.
Weiterführende Informationen
ToolK.io bietet kostenlose Werkzeuge zum Konvertieren zwischen JSON, YAML, CSV und XML, zum Formatieren und Validieren Ihrer Daten sowie verwandte Tutorials für die Arbeit mit strukturierten Daten in Ihren Projekten.
