Conversión entre YAML y JSON

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).

14.1 Ejemplo de equivalencia

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.

14.2 Ventajas al convertir

JSON → YAML:
  • Más legible para humanos.
  • Menos caracteres ({}, [], comas).
  • Óptimo para configuraciones.
YAML → JSON:
  • Ideal para APIs REST y microservicios.
  • Compatible con la mayoría de librerías.
  • Formato más estricto (reduce errores de indentación).

14.3 Herramientas online

Permiten pegar texto y obtener la conversión sin instalar nada.

14.4 Conversión en Python (PyYAML)

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)

14.5 Conversión en Node.js (js-yaml)

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));

14.6 Buenas prácticas

  • Usa YAML para configuraciones legibles y JSON para intercambio de datos en APIs.
  • Convierte con librerías oficiales (PyYAML, js-yaml) para evitar errores manuales.
  • Valida el archivo después de convertirlo.
  • Recuerda que YAML soporta comentarios (#), 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.