Guía
Cómo convertir YAML a JSON sin sorpresas
Identifica el subconjunto compatible, conserva tipos y detecta comentarios, anchors, tags o claves que JSON no puede representar.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
Convertir YAML a JSON no consiste solo en añadir llaves. Primero hay que resolver los valores YAML y comprobar que la estructura final pertenece al modelo de JSON.
Subconjunto que se convierte bien
service: api
replicas: 3
enabled: true
ports:
- 8080
- 8443
se convierte en:
{
"service": "api",
"replicas": 3,
"enabled": true,
"ports": [8080, 8443]
}
Mappings con claves de texto, sequences y escalares equivalentes a cadena,
número, booleano o null tienen una traducción natural.
Lo que debes revisar antes
- Comentarios: JSON no puede conservarlos como comentarios.
- Anchors y aliases: expresan referencias dentro del grafo YAML.
- Tags: pueden construir valores que no pertenecen a los tipos JSON.
- Claves complejas: JSON exige nombres de objeto en forma de cadena.
- Varios documentos: un único documento JSON no representa por sí solo un stream YAML.
- Valores no finitos:
NaNe infinitos no son números JSON válidos.
El conversor YAML a JSON acepta deliberadamente un documento YAML 1.2 Core representable en JSON y rechaza funciones que harían el resultado ambiguo. El rechazo es preferible a eliminar información en silencio.
Tipos que parecen texto
El esquema y la versión del parser determinan cómo se resuelven escalares sin comillas. YAML 1.2 redujo varias conversiones implícitas problemáticas de YAML 1.1, pero un sistema antiguo puede interpretar valores de otra forma. Cita una cadena si su aspecto numérico o booleano no debe cambiar.
Procedimiento
- Confirma versión y funciones YAML usadas por el archivo.
- Sustituye referencias o tags por datos explícitos si el consumidor los necesita.
- Convierte con límites de tamaño y profundidad.
- Valida el JSON resultante.
- Compara tipos y valores importantes, no solo el aspecto visual.
La especificación YAML 1.2.2 diferencia el grafo de representación, el árbol serializado y la presentación textual; una conversión a JSON opera sobre el dato resuelto, no sobre comentarios y estilo.