YAML es un formato de datos basado en sangrías que expresa las mismas estructuras que JSON. Los espacios marcan el anidamiento (nunca tabuladores), # inicia un comentario y todo documento JSON es también YAML válido. Comprueba cualquier archivo con el validador YAML y convierte con el conversor de YAML a JSON o el conversor de JSON a YAML. Los resultados siguientes se obtuvieron pasando los fragmentos por un analizador YAML 1.1.
Escalares
Las cadenas solo necesitan comillas cuando, de otro modo, se leerían como otro tipo o contienen caracteres especiales como : o #.
| Texto YAML | Interpretado como |
|---|---|
42 |
42 |
3.14 |
3.14 |
true |
true |
null |
null |
~ |
null |
"42" |
"42" |
2026-10-27 |
date 2026-10-27 |
0o14 |
"0o14" |
Listas y mapeos
Las listas usan - por elemento (estilo de bloque) o [a, b] (estilo de flujo). Los mapeos usan clave: valor o {k: v}. Sangra con espacios y mantén el ancho 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}}}.
Cadenas multilínea
| conserva los saltos de línea tal como se escriben; > los pliega en espacios. El salto de línea final se conserva por defecto.
literal: |
line one
line two
folded: >
line one
line two
Parsed: {"literal": "line one\nline two\n", "folded": "line one line two\n"}.
Anclas, alias y combinación
&nombre define un ancla, *nombre la reutiliza y <<: *nombre combina un mapeo en otro. La clave de combinación la admiten muchos analizadores, pero no todos.
base: &base
retries: 3
timeout: 30
prod:
<<: *base
timeout: 60
Parsed: {"base": {"retries": 3, "timeout": 30}, "prod": {"retries": 3, "timeout": 60}}.
Varios documentos y comentarios
Separa documentos en un mismo archivo con ---; termina con ... si hace falta. Los comentarios empiezan por # y llegan hasta el final de la línea.
---
name: one
---
name: two
Trampas
Distintas versiones de YAML leen de forma diferente algunos valores simples. YAML 1.1 trata yes, no, on y off como booleanos y un cero inicial como octal; YAML 1.2 no. Entrecomilla cualquier valor que deba seguir siendo una cadena.
| Valor | Interpretado por un analizador YAML 1.1 |
|---|---|
no |
false |
yes |
true |
on |
true |
NO |
false |
off |
false |
010 |
8 |
1_000 |
1000 |
1e3 |
"1e3" |
0x1F |
31 |
"no" |
"no" |