Datos

JSON a YAML

Pegá JSON y obtené YAML legible para humanos. Útil cuando una config viene en JSON pero la querés editar como manifest de Kubernetes o GitHub Actions.

Instantáneo🔒En tu navegadorSin registro
En vivo

Cuándo conviene YAML sobre JSON

JSON es excelente para datos que viajan entre máquinas: estricto, rápido de parsear, soportado nativamente. YAML brilla en otro escenario: configuración que un humano va a editar a mano. Un manifest de Kubernetes con cien claves y cinco niveles de anidamiento se vuelve ilegible en JSON con tantas llaves y comas. En YAML, el mismo contenido se lee fluido, sin ruido visual.

Casos típicos

  • Kubernetes. Toda la documentación de Kubernetes usa YAML para los manifests. Aunque kubectl acepta JSON, nadie escribe JSON a mano para esto.
  • GitHub Actions. Los workflows en .github/workflows/*.yml son YAML. Si tenés un JSON con la definición, hay que convertir.
  • Docker Compose. docker-compose.yml es exclusivamente YAML.
  • Ansible. Playbooks de Ansible son YAML por convención.
  • Editar configs largas en producción. Cuando hay que tocar un archivo de 500 líneas, YAML es más amable.

Cómo se serializa cada tipo

  • Strings simples. Sin comillas si no contienen caracteres especiales.
  • Strings con riesgo. Entre comillas dobles si contienen :, #, empiezan con espacio, o se confunden con booleanos/números.
  • Numbers. Tal cual, sin comillas.
  • Booleans. true o false en minúscula.
  • Null. null.
  • Arrays. Lista con guiones, un elemento por línea.
  • Objetos. Clave seguida de dos puntos, con la jerarquía marcada por indentación.

Reglas de comillas en YAML

YAML interpreta agresivamente: muchos strings se vuelven booleanos o números si no se les pone comillas. Estos casos siempre se quotan:

  • Strings que coinciden con booleanos: "yes", "no", "true", "false", "on", "off".
  • Strings que parecen números: "123", "3.14", "1e5".
  • Strings que empiezan con guion (se confundirían con un item de lista): "-foo".
  • Strings que contienen :, #, &, *, !, |, >, %, @, `.
  • Strings con espacios iniciales o finales.

Indentación: la causa de la mayoría de bugs

YAML usa solo espacios (no tabs) y la cantidad debe ser consistente dentro de cada nivel. La convención más común es 2 espacios. Si dentro del mismo archivo mezclás 2 y 4, podés terminar con jerarquías que se interpretan distinto a lo que pensás. El conversor de Genfy emite siempre indentación de 2 espacios, alineada con la convención de Kubernetes y GitHub.

YAML que rompe

Algunos errores comunes que vas a notar al editar el YAML resultante:

  • Olvidar el espacio después del dos puntos. name:Genfy es inválido; name: Genfy funciona.
  • Indentar con tabs. Los editores modernos avisan, pero si pasás archivos entre sistemas, revisalo.
  • Strings ambiguos. El famoso problema "NO" para Norway. Si dudás, quotalo.

Preguntas frecuentes

¿Por qué convertir JSON a YAML?

YAML es más legible para humanos cuando el config se edita a mano (Kubernetes, Docker Compose, GitHub Actions).

¿Mantiene los tipos?

Sí. Numbers, booleans, null, strings y arrays se preservan.

¿Pone comillas a los strings?

Solo si es necesario para evitar ambigüedad con booleanos, números o caracteres especiales.

¿Te sirvió este generador?