YAML est un format de données fondé sur l'indentation qui exprime les mêmes structures que JSON. Les espaces marquent l'imbrication (jamais de tabulations), # ouvre un commentaire et tout document JSON est aussi du YAML valide. Contrôlez n'importe quel fichier avec le validateur YAML et convertissez avec le convertisseur YAML vers JSON ou le convertisseur JSON vers YAML. Les résultats ci-dessous ont été obtenus en passant les extraits dans un analyseur YAML 1.1.
Scalaires
Les chaînes n'ont besoin de guillemets que si elles seraient sinon lues comme un autre type ou contiennent des caractères spéciaux comme : ou #.
| Texte YAML | Interprété comme |
|---|---|
42 |
42 |
3.14 |
3.14 |
true |
true |
null |
null |
~ |
null |
"42" |
"42" |
2026-10-27 |
date 2026-10-27 |
0o14 |
"0o14" |
Listes et mappages
Les listes utilisent - par élément (style bloc) ou [a, b] (style flux). Les mappages utilisent clé: valeur ou {k: v}. Indentez avec des espaces et gardez une largeur constante.
fruits:
- apple
- banana
- cherry
short: [1, 2, 3]
server:
host: localhost
port: 8080
tags: {env: dev, debug: true}
Parsed: {"fruits": ["apple", "banana", "cherry"], "short": [1, 2, 3]} and {"server": {"host": "localhost", "port": 8080, "tags": {"env": "dev", "debug": true}}}.
Chaînes multilignes
| conserve les sauts de ligne tels qu'écrits ; > les replie en espaces. Le saut de ligne final est conservé par défaut.
literal: |
line one
line two
folded: >
line one
line two
Parsed: {"literal": "line one\nline two\n", "folded": "line one line two\n"}.
Ancres, alias et fusion
&nom définit une ancre, *nom la réutilise et <<: *nom fusionne un mappage dans un autre. La clé de fusion est prise en charge par beaucoup d'analyseurs, mais pas tous.
base: &base
retries: 3
timeout: 30
prod:
<<: *base
timeout: 60
Parsed: {"base": {"retries": 3, "timeout": 30}, "prod": {"retries": 3, "timeout": 60}}.
Documents multiples et commentaires
Séparez les documents d'un même fichier par --- ; terminez par ... si besoin. Les commentaires commencent par # et vont jusqu'à la fin de la ligne.
---
name: one
---
name: two
Pièges
Les différentes versions de YAML lisent certaines valeurs simples différemment. YAML 1.1 traite yes, no, on et off comme des booléens et un zéro initial comme de l'octal ; YAML 1.2 non. Mettez entre guillemets toute valeur qui doit rester une chaîne.
| Valeur | Interprétée par un analyseur YAML 1.1 |
|---|---|
no |
false |
yes |
true |
on |
true |
NO |
false |
off |
false |
010 |
8 |
1_000 |
1000 |
1e3 |
"1e3" |
0x1F |
31 |
"no" |
"no" |