Guía
Booleanos en YAML: por qué yes, no, on y off cambian según la versión
Evita que palabras como yes, no, on y off cambien de cadena a booleano al mover YAML entre analizadores y versiones.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
En YAML 1.2, los booleanos del esquema básico se escriben true y false;
palabras como yes, no, on y off pueden mantenerse como texto. En YAML
1.1 esas mismas palabras se reconocían como booleanos. Si no controlas la
versión y el esquema del analizador, pon entre comillas cualquier palabra que
deba conservarse como cadena.
El mismo texto puede producir tipos distintos
Considera esta configuración:
respuesta: yes
interruptor: off
publicar: true
Con resolución YAML 1.1, yes y off pueden convertirse en true y false.
Con el esquema básico de YAML 1.2, solo true es inequívocamente booleano y los
otros dos valores pueden ser cadenas.
La especificación YAML 1.2.2
limita los booleanos del esquema básico a true y false. El
tipo booleano de YAML 1.1 documenta las
formas históricas y, n, yes, no, on y off, con distintas
mayúsculas.
Forma segura de escribirlos
Usa booleanos explícitos cuando el dato sea lógico y comillas cuando sea texto:
respuesta: 'yes'
interruptor: 'off'
publicar: true
Esto importa especialmente en códigos de país, respuestas importadas de un formulario, nombres de estados y valores de configuración. Cambiar una cadena por un booleano puede alterar una comparación, una columna o una llamada a una API sin que el YAML parezca incorrecto.
Comprueba la conversión real
Pega un caso pequeño en el conversor de YAML a JSON y observa tanto el valor como su tipo: las cadenas aparecen con comillas en JSON y los booleanos no. La herramienta usa una configuración documentada, pero otro sistema puede seleccionar otro esquema; la prueba válida es siempre la del analizador que ejecutará tu aplicación.
Al convertir en sentido contrario con JSON a YAML, parte de tipos JSON ya explícitos. Después revisa las cadenas que podrían parecer valores especiales para el consumidor final.
Lista de control
- Averigua si el sistema espera YAML 1.1 o 1.2 y qué esquema usa.
- Escribe los booleanos como
trueofalse. - Entrecomilla
yes,no,onyoffcuando sean texto. - Convierte una muestra y compara los tipos, no solo la apariencia.
Las comillas no son ruido en este caso: documentan que el dato debe permanecer como texto en todos los entornos.