json-formatieren.de

Ratgeber · JSON 2026

JSON, YAML, TOML im Vergleich

JSON gewinnt bei API-Payloads, YAML bei lesbarer Config, TOML bei einfachen flachen Settings. Aber YAML hat das Norway-Problem, TOML kein Schema.

Foto von Jan-Tristan Rudat

Von Jan-Tristan Rudat

Redakteur json-formatieren.de

Was die drei Formate gemeinsam haben

JSON, YAML und TOML sind alle drei Konfigurations- bzw. Datenaustausch-Formate mit hierarchischer Struktur. Sie haben dieselben grundlegenden Datentypen (Object/Map, Array/List, String, Number, Boolean, Null), unterscheiden sich aber stark in Syntax, Lesbarkeit und Anwendungsfeldern.

Direkter Vergleich

AspektJSONYAMLTOML
StandardRFC 8259 (2017)YAML 1.2 (2009)TOML 1.0 (2021)
Kommentareneinja (#)ja (#)
Trailing-Commasneinn/anein in inline-Arrays
String-QuotesDouble pflichtoptionalSingle oder Double
Datetime-Typals Stringnativnativ (RFC 3339)
VerschachtelungJSON kann beliebigYAML kann beliebigTOML flach, sektionen-basiert
Parsing-Speedsehr schnelllangsamschnell
HauptanwendungAPIs, Data-ExchangeConfigs, K8s, CIConfigs (Rust, Python)

Wann JSON

JSON ist die richtige Wahl wenn:

  • Daten zwischen Maschinen ausgetauscht werden (REST-APIs, GraphQL-Responses)
  • Hoher Datendurchsatz erforderlich ist (Streaming, Logs als JSON-Lines)
  • Plattform-Interoperabilität zählt (JS, Python, Java, Rust, Go - alle haben performante Parser im Standard)
  • Sicherheit/Strenge wichtig ist (kein "yes wird zu true"-Drama wie in YAML)

Wann YAML

YAML lohnt sich wenn:

  • Menschen die Datei häufig manuell bearbeiten (Kubernetes-Manifeste, Docker-Compose, GitHub Actions, GitLab CI)
  • Mehrzeilige Strings und Anchors/Aliase die Lesbarkeit verbessern
  • Verschachtelung tief wird und JSON unleserlich

Achtung Norway-Problem: YAML 1.1 interpretiert no und yes als Boolean - was den ISO-Country-Code für Norwegen ("NO") zerstört, wenn er nicht in Quotes steht. YAML 1.2 (2009) hat das gefixt, aber viele Parser nutzen weiterhin 1.1-Default. Lösung: immer Quotes setzen.

Wann TOML

TOML eignet sich für:

  • Flache Konfigurations-Dateien (Cargo.toml in Rust, pyproject.toml in Python)
  • Wenn man YAML-Indentation-Albträume vermeiden will
  • Nativen Datetime-Support

Limitierung: TOML ist schwächer bei tief verschachtelten Strukturen - wer Trees abbilden will, sollte JSON oder YAML wählen.

Größen-Vergleich (gleiche Daten)

FormatBytesLesbarkeit
JSON (minified)132niedrig
JSON (pretty)198mittel
YAML156hoch
TOML148hoch

Bei wachsender Komplexität schwillt YAML schneller als JSON (Indentation-Overhead). Nach gzip sind die Unterschiede marginal.

Mein Default

APIs: JSON. CI/CD und Kubernetes: YAML. Tool-Configs in Sprachen mit TOML-Ecosystem (Rust, Python): TOML. Beim Mischen aufpassen - keine zwei Formate für dieselbe Verantwortlichkeit.

Mehr zum Thema