YAML es agradable de leer, pero un pequeño descuido puede cambiar su significado o romperlo por completo. Convertir un archivo a JSON es una forma rápida de comprobar que significa lo que crees.
1. Tabuladores para la sangría
YAML prohíbe los caracteres de tabulación para la sangría. Un tabulador provoca un error de análisis. Configura tu editor para que inserte espacios, normalmente dos por nivel.
2. Sangría inconsistente
Los elementos del mismo nivel deben alinearse exactamente. Si una clave está sangrada un espacio de más, pasa a ser hija de la clave anterior o produce un error.
3. Falta de espacio tras los dos puntos
clave:valor es una cadena simple, no un par. Escribe clave: valor.
4. Valores especiales sin comillas
Algunos valores sin comillas cambian de tipo o rompen el analizador:
yes,no,on,offpueden convertirse en booleanos en versiones antiguas de la especificación.nully~se convierten en nulo.1.0es un número, no una cadena de versión. Ponlo entre comillas como"1.0".- Un valor que empieza por
@,*,&,%o que contiene:necesita comillas. - Un cero inicial como
0755puede leerse como octal.
5. Claves duplicadas
Dos claves idénticas en un mismo mapa son un error en los analizadores estrictos, y en los permisivos gana el último valor sin avisar. Elimina los duplicados.
6. Listas y mapas confundidos
Un elemento de lista empieza con - . Un mapa dentro de un elemento de lista continúa con la misma sangría que la primera clave tras el guion:
servers:
- name: a
port: 80
- name: b
port: 81
7. Cadenas de varias líneas
Usa | para conservar los saltos de línea y > para plegar las líneas en una. Sangra el bloque bajo la clave.
Comprobar tu trabajo
Convierte el YAML a JSON. Si la estructura del JSON no es la que querías, la sangría está mal en algún sitio. Los errores indican un número de línea, que señala el problema o la línea justo encima.
Preguntas frecuentes
¿Por qué mi número pierde el cero final? Se leyó como número. Ponlo entre comillas para conservar una cadena.
¿Puede YAML llevar comentarios después de un valor? Sí, con un espacio antes de la almohadilla.

