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

  1. Averigua si el sistema espera YAML 1.1 o 1.2 y qué esquema usa.
  2. Escribe los booleanos como true o false.
  3. Entrecomilla yes, no, on y off cuando sean texto.
  4. 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.