YAML-Spickzettel: Syntax mit Beispielen

YAML-Spickzettel mit Beispielen: Maps, Listen, Strings, mehrzeilige Blöcke mit | und >, Datentypen, Anker und Aliase sowie typische Fehler wie das Norwegen-Problem.

45 Einträge

Grundlagen

name: AdaSchlüssel und Wert, getrennt durch Doppelpunkt und Leerzeichen
server: host: localhost port: 8080Verschachtelte Map: Einrückung mit Leerzeichen, Tabs sind nicht erlaubt
# KommentarKommentar bis zum Zeilenende; vor # muss nach einem Wert ein Leerzeichen stehen
---Beginn eines neuen Dokuments; mehrere Dokumente pro Datei sind möglich, etwa bei Kubernetes
...Ende eines Dokuments (selten nötig)

Listen

früchte: - Apfel - BirneYAML Liste in Blockform: jedes Element mit Bindestrich und Leerzeichen
früchte: [Apfel, Birne]Liste in Flow-Schreibweise, wie in JSON
personen: - name: Ada alter: 36 - name: AlanListe von Maps; die Schlüssel eines Elements stehen bündig unter dem ersten
matrix: - [1, 2] - [3, 4]Verschachtelte Listen
leer: []Leere Liste

Maps

punkt: {x: 1, y: 2}Map in Flow-Schreibweise
leer: {}Leere Map
"schlüssel mit: doppelpunkt": wertSchlüssel mit Sonderzeichen in Anführungszeichen
? [a, b] : wertKomplexer Schlüssel mit ? (selten, nicht jeder Parser unterstützt das)

Strings und Anführungszeichen

text: Hallo WeltEinfacher String ohne Anführungszeichen (plain scalar)
text: 'Sie sagte: "Hallo"'Einfache Anführungszeichen: keine Escape-Sequenzen, '' steht für ein einzelnes '
text: "Zeile 1\nZeile 2"Doppelte Anführungszeichen: Escape-Sequenzen wie \n, \t, \u00e4
pfad: 'C:\Temp'Backslashes in einfachen Anführungszeichen bleiben erhalten
farbe: "#ff0000"Werte mit #, :, @, *, & oder einem Backtick am Anfang in Anführungszeichen setzen

Mehrzeilige Strings

skript: | echo eins echo zweiLiteral-Block |: Zeilenumbrüche bleiben erhalten, ideal für Skripte
text: > Ein langer AbsatzGefalteter Block >: Zeilenumbrüche werden zu Leerzeichen, Leerzeilen zu Umbrüchen
text: |- ohne Umbruch am Ende|- bzw. >-: abschließenden Zeilenumbruch entfernen (strip)
text: |+ mit allen Umbrüchen |+ bzw. >+: alle Zeilenumbrüche am Ende behalten (keep)
code: |2 eingerücktEinrückungsangabe: Inhalt beginnt nach zwei Leerzeichen, der Rest bleibt erhalten
text: Dies ist ein umbrochener WertPlain Scalar über mehrere Zeilen: wird zu einer Zeile mit Leerzeichen verbunden

Datentypen

anzahl: 42Ganzzahl; auch 0x2A (hex) und 0o52 (oktal, YAML 1.2)
preis: 9.99Gleitkommazahl; 1e3, .inf, -.inf, .nan sind ebenfalls Zahlen
aktiv: trueBoolean; YAML 1.2 kennt nur true und false
wert: nullNull; auch ~ oder ein leerer Wert
datum: 2026-10-10Viele Parser machen daraus ein Datum (YAML-1.1-Typ timestamp); als Text in Anführungszeichen setzen
plz: "01067"Führende Null erhalten: als String schreiben
wert: !!str 123Typ ausdrücklich festlegen (Tag); auch !!int, !!float, !!bool
bild: !!binary R0lGODlh…Binärdaten als Base64 (YAML 1.1, nicht überall unterstützt)

Anker und Aliase

basis: &basis timeout: 30YAML Anker &name markiert einen Knoten zur Wiederverwendung
kopie: *basisAlias *name setzt den markierten Knoten hier ein
dienst: <<: *basis port: 80Merge Key <<: Schlüssel des Ankers übernehmen und ergänzen (YAML 1.1, von Docker Compose und vielen Parsern unterstützt)
<<: [*a, *b]Mehrere Anker zusammenführen; bei gleichen Schlüsseln gewinnt der erste

Stolperfallen

land: NONorwegen-Problem: YAML-1.1-Parser lesen yes, no, on, off, y, n als Boolean. Lösung: land: "NO"
version: 1.10Wird zur Zahl 1.1. Versionsnummern in Anführungszeichen: "1.10"
datei: 0755In YAML 1.1 oktal (493), in YAML 1.2 dezimal 755. Eindeutig: 0o755 oder als String
port: 22:22Zahlen mit Doppelpunkt können in YAML 1.1 als Sexagesimalzahl gelesen werden; Docker empfiehlt Port-Angaben in Anführungszeichen
schlüssel:wertOhne Leerzeichen nach dem Doppelpunkt ist das ein einzelner String, keine Map
Tabs zur EinrückungTabs sind für Einrückung verboten und führen zu Parserfehlern; Editor auf Leerzeichen stellen
doppelt: 1 doppelt: 2Doppelte Schlüssel sind laut Spezifikation ungültig; manche Parser nehmen still den letzten Wert
befehl: echo "a: b"Doppelpunkt mit Leerzeichen im Wert verwirrt den Parser; ganzen Wert in Anführungszeichen setzen

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

YAML-Syntax kompakt

Dieser YAML-Spickzettel fasst die YAML Syntax in 45 Beispielen zusammen: Maps und jede Form einer YAML Liste, Strings mit und ohne Anführungszeichen, mehrzeilige Blöcke mit | und >, Datentypen, YAML Anker und Aliase sowie die typischen Stolperfallen. Er ist als kompaktes YAML Cheat Sheet für Docker Compose, Kubernetes, GitHub Actions, Ansible und andere Konfigurationsdateien gedacht.

YAML strukturiert Daten über Einrückung. Wer YAML mehrzeilig schreiben will, wählt zwischen dem Literal-Block |, der Zeilenumbrüche erhält, und dem gefalteten Block >, der Zeilen zu einem Absatz verbindet. Die Zusätze - und + steuern, was mit Umbrüchen am Ende passiert. Wiederholte Abschnitte lassen sich mit einem Anker &name markieren und mit *name oder dem Merge Key << wiederverwenden.

Viele Fehler entstehen durch automatische Typerkennung: NO wird in YAML 1.1 zu false, 1.10 zur Zahl 1.1 und 0755 je nach Version zu einer Oktal- oder Dezimalzahl. Im Zweifel helfen Anführungszeichen. Ob Ihre Datei gültig ist und welche Struktur ein Parser daraus macht, zeigen YAML formatieren und YAML in JSON.

Anleitung: YAML-Spickzettel in 3 Schritten

  1. Wählen Sie eine Gruppe wie „Mehrzeilige Strings“ oder „Stolperfallen“ oder suchen Sie nach einem Begriff.
  2. Lesen Sie die Erklärung; das Ergebnis als JSON steht meist dahinter.
  3. Kopieren Sie das Beispiel mit „Kopieren“ und prüfen Sie Ihre fertige Datei mit dem YAML-Formatierer.

Typische Anwendungsfälle

  • Docker-Compose-, Kubernetes- oder GitHub-Actions-Dateien ohne Einrückungsfehler schreiben.
  • Mehrzeilige Skripte und Texte in CI-Konfigurationen richtig mit | oder > angeben.
  • Wiederholte Abschnitte mit Ankern und Aliasen zusammenfassen.
  • Typfallen wie NO als Boolean oder 1.10 als Zahl vermeiden.
Fragen

Häufige Fragen

Was ist der Unterschied zwischen | und > in YAML?

Bei | (Literal-Block) bleiben alle Zeilenumbrüche erhalten, gut für Skripte und Zertifikate. Bei > (gefalteter Block) werden einfache Zeilenumbrüche zu Leerzeichen, nur Leerzeilen erzeugen einen Umbruch; gut für lange Fließtexte.

Darf ich in YAML Tabs verwenden?

Nicht zur Einrückung. Die Spezifikation verbietet Tabs dort, Parser melden dann Fehler. Innerhalb von Werten sind Tabs erlaubt. Stellen Sie Ihren Editor für YAML-Dateien auf Leerzeichen ein.

Warum wird NO zu false?

Parser nach YAML 1.1, darunter PyYAML, werten yes, no, on, off und ähnliche Wörter als Boolean. YAML 1.2 kennt nur true und false. Setzen Sie solche Werte in Anführungszeichen.

Wie viele Leerzeichen soll ich einrücken?

Die Anzahl ist frei, muss aber innerhalb einer Ebene gleich bleiben. Üblich sind zwei Leerzeichen; viele Projekte und Formatierer nutzen diesen Wert.

Ist JSON gültiges YAML?

Weitgehend ja: YAML 1.2 wurde so gestaltet, dass JSON-Dokumente gültiges YAML sind. Kleine Ausnahmen betreffen etwa doppelte Schlüssel oder sehr lange Schlüssel. Umgekehrt ist YAML meist kein gültiges JSON.

Welche Dateiendung ist richtig, .yml oder .yaml?

Beide sind verbreitet und funktionieren. Die YAML-Projektseite empfiehlt .yaml. Manche Werkzeuge erwarten einen festen Namen, etwa docker-compose.yml oder compose.yaml; dort gilt, was das Werkzeug sucht.

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge