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.
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.
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.
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.
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.
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.
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.
Welchen Typ ein YAML-Wert ohne Anführungszeichen bekommt, und die sichere Variante
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