De forma predeterminada, YAML interpreta valores según su forma: 123
como entero, true
como booleano o null
/~
como nulo. Sin embargo, a veces necesitamos forzar un tipo específico sin dejar lugar a ambigüedades. Para eso existen los tags de tipo, que se escriben con el prefijo !!
.
Un tag explicita el tipo que debe asignarse a un valor, independientemente de su forma textual.
valor1: !!str 123 # Se interpreta como cadena
valor2: !!int "123" # Se interpreta como entero
codigo: !!str 00123
respuesta: !!str true
Útil para conservar ceros a la izquierda o tratar “true” como texto y no como booleano.
edad: !!int "30"
cantidad: !!int 100
Asegura que un número dentro de comillas se convierta en entero.
precio: !!float "199.99"
descuento: !!float 0.15
activo: !!bool "true"
deshabilitado: !!bool "false"
direccion: !!null ""
telefono: !!null
colores: !!seq [Rojo, Verde, Azul]
producto: !!map
codigo: 1
descripcion: Monitor
precio: 85000
codigo_postal: !!str 05000
.respuesta: !!str yes
para almacenarlo como texto.!!str
en valores ambiguos como 00123
, yes
, no
.En resumen, los tags de tipo (!!str
, !!int
, !!float
, !!bool
, !!null
, !!seq
, !!map
) nos permiten controlar con precisión cómo se interpretan los datos en YAML, evitando ambigüedades y garantizando que cada valor se trate con el tipo correcto.