YAML vs JSON: Was du wann nimmst und warum

YAML vs JSON

YAML vs JSON: Unterschiede, Stolperfallen und .yaml vs .yml | We.Inc

YAML vs JSON im direkten Vergleich: Syntax, Kommentare, Typen, mehrzeiliger Text und die yes/no-Falle. Teste, wie ein Wert ohne Anführungszeichen gelesen wird, und kläre .yaml vs .yml ein für alle Mal.

JSON ist ein strenges Datenformat für Programme: geschweifte und eckige Klammern, Strings in doppelten Anführungszeichen und keine Kommentare. YAML drückt dieselben Daten über Einrückung aus, erlaubt Kommentare und mehrzeiligen Text, und Version 1.2 wurde als Obermenge von JSON entworfen. Nimm JSON für APIs und maschinelle Ausgaben, YAML für Dateien, die Menschen von Hand bearbeiten.

YAML und JSON im Vergleich, Merkmal für Merkmal

Beide Formate beschreiben dieselben Dinge: Maps, Listen, Strings, Zahlen, Booleans und null. Die echten Unterschiede liegen darin, wer die Datei liest und wie nachsichtig der Parser ist. Probier unten die Wertprüfung aus, um zu sehen, welchen Typ ein Wert ohne Anführungszeichen bekommt, und lies dann die Beispiele im Vergleich und die Stolperfallen, über die Leute beim Wechsel zwischen beiden fallen.

Häufige Fragen

Ist jede JSON-Datei gültiges YAML?

YAML 1.2 wurde so geschrieben, dass es eine strikte Obermenge von JSON ist, daher lädt ein JSON-Dokument in der Praxis in einem YAML-1.2-Parser. Es gibt Randfälle, etwa doppelte Schlüssel, die JSON-Parser oft tolerieren, YAML aber verbietet.

Sollte ich .yaml oder .yml verwenden?

Verwende .yaml. RFC 9512, das den Medientyp application/yaml registriert, nennt .yaml die bevorzugte Endung und merkt an, dass .yml weiterhin genutzt wird. Beide funktionieren in Tools wie GitHub Actions, es geht also um Einheitlichkeit innerhalb eines Projekts.

Warum wurde mein YAML-Wert zu true oder false?

YAML 1.1 behandelte Wörter wie yes, no, on, off, y und n als Booleans. Das Core Schema von YAML 1.2 akzeptiert nur true und false in drei Schreibweisen, aber ältere Parser sind noch verbreitet. Anführungszeichen um den Wert beseitigen den Zweifel.

Kann JSON Kommentare enthalten?

Nein. RFC 8259 listet die Tokens auf, die JSON enthalten darf, und Kommentare gehören nicht dazu. Manche Tools akzeptieren ein gelockertes JSON mit Kommentaren, aber ein strenger Parser lehnt die Datei ab.

Was lässt sich schneller parsen?

Die Grammatik von JSON ist viel kleiner, und Browser bringen einen nativen Parser dafür mit, daher ist es für Daten, die über das Netz gehen, meist die schnellere und sicherere Wahl. YAML-Parser müssen weit mehr Regeln anwenden, von der Einrückung bis zur impliziten Typisierung.

Wann JSON die bessere Wahl ist

Wann YAML die bessere Wahl ist

Ein Datensatz, in beiden Schreibweisen

Dieselben Website-Einstellungen in beiden Formaten. YAML verzichtet auf Anführungszeichen und Klammern und ergänzt einen Kommentar; JSON schreibt jeden String und jede Verschachtelungsebene aus.

Einrückung mit zwei Leerzeichen, ein Kommentar, eine Liste und ein Versions-String in Anführungszeichen, damit er Text bleibt.

Kein Kommentar möglich, und jeder Schlüssel und String trägt doppelte Anführungszeichen.

Werte, die ohne Anführungszeichen ihren Typ ändern

Welchen Typ ein YAML-Wert ohne Anführungszeichen bekommt, und die sichere Variante

Wie wird dieser Wert ohne Anführungszeichen gelesen?

Gib einen Wert so ein, wie er in einer YAML-Datei nach einem Doppelpunkt stehen würde, ohne Anführungszeichen. Die Prüfung wendet die Regeln des Core Schema von YAML 1.2, die Boolean-Liste von YAML 1.1 und die JSON-Grammatik an.

Wert ohne Anführungszeichen

Core Schema von YAML 1.2

YAML-1.1-Parser

JSON, so wie geschrieben

Derselbe Wert in JSON

Boolean {v} (YAML 1.1 liest dieses Wort als Boolean)

Keine yes/no-Boolean-Falle bei diesem Wert

Gültiger JSON-Wert

Ohne Anführungszeichen kein gültiges JSON

JSON kann diese Zahl nicht darstellen

Probier einen aus

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap