Saltar al contenido

Convertir YAML a JSON

Analiza un documento YAML con la biblioteca yaml (esquema core de YAML 1.2) y lo devuelve como JSON con sangría. Los comentarios se descartan, los anchors y aliases se expanden, y valores como yes o 2024-01-01 se quedan como cadenas.

Enviar ajustes escritos en YAML a una API o a un validador de JSON Schema que solo acepta JSON.

YAML

Cuándo usarla

  • Enviar ajustes escritos en YAML a una API o a un validador de JSON Schema que solo acepta JSON.
  • Comprobar cómo se tipa realmente un archivo de CI o de Kubernetes, por ejemplo si una versión es una cadena o un número.

Cómo usarla

  1. Pega un único documento YAML o carga un archivo .yaml/.yml.
  2. Si aparece un error, revisa la sangría, las claves duplicadas y los separadores --- en la línea indicada.
  3. Revisa qué valores son cadenas y cuáles números en el JSON de salida y cópialo.

Entrada YAML

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

Detalles y limitaciones

El análisis se ejecuta en el navegador. La salida es siempre JSON con 2 espacios; no hay opción para minificar.

Se aplican las reglas de YAML 1.2: yes/no/on/off son cadenas, no booleanos, y las fechas sin comillas se quedan como cadenas. 0o17 es octal (15).

Las merge keys (<<: *anchor) no se fusionan; aparecen como una clave literal "<<". Las claves duplicadas en un mismo mapping son un error.

Los enteros mayores que 2^53 pierden precisión en JSON. Pon los ID largos entre comillas en el YAML.

FAQ

¿Puede convertir un archivo con varios documentos separados por ---?

No. Varios documentos provocan el error "Source contains multiple documents". Pega un documento cada vez. Un único --- al principio no da problemas.

¿Por qué enabled: yes es una cadena en el JSON?

El parser sigue YAML 1.2, donde solo true y false son booleanos. Escribe true/false si necesitas un booleano JSON.

¿Se admiten anchors y aliases?

Sí. Un alias como *base se sustituye por una copia del valor anclado. Sin embargo, la merge key << de YAML 1.1 no se aplica.

Especificaciones y referencias