Was ist YAML?
YAML (YAML Ain't Markup Language) ist ein menschenlesbares Datenformat, das vor allem für Konfigurationsdateien verwendet wird. Es ist lesbarer als JSON oder XML und nutzt Einrückung zur Strukturierung.
YAML Grundsyntax
Key-Value-Paare
name: Max Mustermann alter: 30 aktiv: true
Verschachtelte Objekte
person:
name: Max
adresse:
stadt: Berlin
plz: 10115Listen/Arrays
hobbies: - Lesen - Sport - Programmieren # Oder inline: farben: [rot, grün, blau]
Kommentare
# Dies ist ein Kommentar name: Max # Inline-Kommentar
Häufige YAML-Fehler
1. Tabs statt Leerzeichen
person: →name: Max # FEHLER: Tab-Zeichen!
YAML erlaubt nur Leerzeichen für Einrückung, keine Tabs!
2. Inkonsistente Einrückung
person: name: Max alter: 30 # FEHLER: 3 statt 2 Leerzeichen
3. Fehlendes Leerzeichen nach Doppelpunkt
name:Max # FEHLER: Leerzeichen nach : fehlt
4. Unescapte Sonderzeichen
text: Das ist ein : Problem # Zweiter : ist Problem # Lösung: text: "Das ist ein : Problem"
YAML Datentypen
# Strings name: "Mit Anführungszeichen" name2: Ohne Anführungszeichen multiline: | Mehrzeiliger Text hier # Zahlen integer: 42 float: 3.14 scientific: 1.0e+12 # Boolean aktiv: true inaktiv: false # Null wert: null wert2: ~ # Datum datum: 2024-01-15
Wo wird YAML verwendet?
- Docker Compose: docker-compose.yml
- Kubernetes: Deployment-Manifeste
- CI/CD: GitHub Actions, GitLab CI, Travis
- Ansible: Playbooks und Inventories
- Spring Boot: application.yml
- Hugo/Jekyll: Frontmatter in Markdown
YAML vs JSON
| Eigenschaft | YAML | JSON |
|---|---|---|
| Lesbarkeit | Sehr gut | Gut |
| Kommentare | Ja (#) | Nein |
| Einrückung | Wichtig! | Optional |
| Mehrzeilige Strings | Ja (| und >) | Nur mit \n |
| Superset | Von JSON | - |
Häufig gestellte Fragen
Wie viele Leerzeichen für Einrückung?
Konvention ist 2 Leerzeichen, aber jede konsistente Anzahl funktioniert. Wichtig: Immer gleich bleiben innerhalb einer Datei!
Kann ich JSON in YAML verwenden?
Ja! JSON ist gültiges YAML. Sie können JSON-Syntax in YAML-Dateien verwenden, z.B. für inline Arrays: [1, 2, 3].
Wie escape ich Sonderzeichen?
Setzen Sie Strings mit Sonderzeichen in Anführungszeichen: Doppelte für Escape-Sequenzen (\n), einfache für literalen Text.