YAML y JSON son formatos populares para datos estructurados. YAML es un superconjunto de JSON, por lo que cualquier JSON válido también es YAML válido. Esto facilita la conversión entre ambos según la necesidad: hacer el archivo más legible (JSON → YAML) o integrarlo con APIs (YAML → JSON).
JSON:
{
"productos": [
{ "codigo": 1, "descripcion": "Teclado", "precio": 15000 },
{ "codigo": 2, "descripcion": "Mouse", "precio": 9000 }
]
}
YAML equivalente:
productos:
- codigo: 1
descripcion: Teclado
precio: 15000
- codigo: 2
descripcion: Mouse
precio: 9000
Ambos representan una lista de objetos con las mismas claves.
{}
, []
, comas).Permiten pegar texto y obtener la conversión sin instalar nada.
JSON → YAML:
import yaml
import json
json_data = '{"nombre": "Ana", "edad": 25, "hobbies": ["leer", "correr"]}'
data = json.loads(json_data)
yaml_data = yaml.dump(data, allow_unicode=True)
print(yaml_data)
Resultado:
edad: 25
hobbies:
- leer
- correr
nombre: Ana
YAML → JSON:
yaml_data = """
nombre: Ana
edad: 25
hobbies:
- leer
- correr
"""
data = yaml.safe_load(yaml_data)
json_data = json.dumps(data, indent=2, ensure_ascii=False)
print(json_data)
JSON → YAML:
const yaml = require("js-yaml");
const jsonData = {
nombre: "Ana",
edad: 25,
hobbies: ["leer", "correr"]
};
const yamlStr = yaml.dump(jsonData);
console.log(yamlStr);
YAML → JSON:
const fs = require("fs");
const yaml = require("js-yaml");
const yamlStr = `
nombre: Ana
edad: 25
hobbies:
- leer
- correr
`;
const data = yaml.load(yamlStr);
console.log(JSON.stringify(data, null, 2));
#
), pero JSON no.En resumen, convertir entre YAML y JSON es sencillo gracias a su relación directa. Aprovecha YAML para configuraciones comprensibles y JSON para comunicación entre sistemas, eligiendo el formato más adecuado en cada contexto.