CodeKitHub
Herramientas JSON

Convertidor JSON ↔ YAML

Última actualización:

Al convertir JSON a YAML, los objetos se convierten en bloques indentados de tipo clave: valor y los arreglos en elementos de lista con prefijo `-` — la conversión inversa resuelve los atajos de tipo de YAML, como true, null o números sin comillas, devolviéndolos a los tipos correctos de JSON. Esta herramienta realiza esa conversión, en ambas direcciones, directamente en tu navegador. Pega tus datos, elige una dirección y obtén un resultado limpio y correctamente indentado, útil para editar manifiestos de Kubernetes, archivos de Docker Compose, flujos de trabajo de GitHub Actions, o cualquier configuración que se almacene como YAML pero sea más fácil de generar o inspeccionar como JSON.

¿Qué es esta herramienta?

YAML es el formato preferido para la mayoría de los archivos de configuración modernos: manifiestos de Kubernetes, Docker Compose, pipelines de GitHub Actions y GitLab CI, playbooks de Ansible, ya que es más legible que JSON para las personas que editan archivos a mano: no requiere comillas alrededor de la mayoría de las claves, no hay comas finales que causen errores, y admite comentarios. JSON, en cambio, es lo que la mayoría de las API y lenguajes de programación producen y consumen de forma nativa.

Esta herramienta conecta ambos formatos usando js-yaml, una implementación de JavaScript ampliamente utilizada de la especificación YAML, de modo que el análisis y la generación siguen las mismas reglas que aplicaría una herramienta compatible con YAML como `kubectl` o un ejecutor de CI.

Convertir JSON a YAML transforma los objetos en bloques indentados de tipo clave: valor y los arreglos en elementos de lista con prefijo `-`. Convertir YAML a JSON hace lo contrario, y también resuelve los atajos de tipo específicos de YAML (como `true`, `null` o números sin comillas) en sus tipos JSON correspondientes.

¿Por qué utilizarlo?

  • Bidireccional: convierte JSON a YAML o YAML a JSON desde la misma pantalla.
  • Análisis y generación basados en estándares mediante js-yaml, de modo que el resultado coincide con lo que esperan las herramientas YAML reales (Kubernetes, sistemas de CI, Ansible).
  • Maneja objetos y arreglos anidados a cualquier profundidad, convirtiendo entre la estructura basada en indentación de YAML y las llaves y corchetes de JSON.
  • Interpreta correctamente los atajos de tipo de YAML: los valores true/false, null y numéricos sin comillas se convierten en sus tipos JSON correspondientes en lugar de cadenas.
  • Copia al portapapeles o descarga como archivo .json o .yaml.
  • 100% del lado del cliente: nada de lo que pegas se sube a ningún servidor.

Cómo utilizarlo

  1. Elige una dirección: "JSON → YAML" o "YAML → JSON".
  2. Pega tus datos en el cuadro de entrada.
  3. Haz clic en "Convertir".
  4. Revisa el resultado y luego cópialo o haz clic en "Descargar" para guardar un archivo.

Ejemplo

Entrada

{"name":"Alice","roles":["admin","editor"],"active":true}

Resultado

name: Alice
roles:
  - admin
  - editor
active: true

Observa cómo el arreglo se convierte en una lista de elementos con guiones bajo "roles", y el booleano permanece como true sin comillas en lugar de convertirse en la cadena "true".

Consejos prácticos

  • Al escribir un manifiesto de Kubernetes o un flujo de trabajo de GitHub Actions: redacta primero la estructura en JSON (muchos editores y herramientas de IA generan JSON de forma más confiable) y luego conviértela a YAML para el archivo final.
  • Al depurar una configuración YAML que se comporta mal: conviértela a JSON para ver exactamente qué valores son cadenas, números o booleanos; la sintaxis flexible de YAML puede ocultar discrepancias de tipo que resultan obvias en JSON.
  • Si tu JSON contiene claves con caracteres especiales o que empiezan con un número, js-yaml las pondrá automáticamente entre comillas en la salida YAML para que se puedan volver a analizar correctamente.

Por qué la conversión de tipos es la parte más delicada de YAML

La mayor ventaja de usabilidad de YAML frente a JSON, no requerir comillas en la mayoría de los valores, es también su mayor fuente de errores sutiles. El ejemplo clásico es el "problema de Noruega": en YAML 1.1 (usado por muchos analizadores más antiguos), un valor sin comillas `no` se interpreta como el booleano `false`, no como la cadena "no", lo cual ha roto configuraciones reales de códigos de país que incluían a Noruega. Esta herramienta sigue la especificación YAML 1.2, que redujo el conjunto de valores sin comillas tratados como booleanos a solo `true` y `false` (y sus variantes de mayúsculas/minúsculas), disminuyendo, aunque sin eliminar del todo, este tipo de sorpresas. Ante la duda sobre cómo se tipará un valor, ponerlo entre comillas explícitamente en tu YAML es la opción más segura.

Preguntas frecuentes

¿Se conservan los comentarios de YAML al convertir a JSON y de vuelta?

No. JSON no tiene ningún concepto de comentarios, así que al convertir YAML a JSON se descartan todos los comentarios # del origen. Si vuelves a convertir ese JSON a YAML, los comentarios no reaparecerán; esta es una limitación inherente del formato, no un error de la herramienta.

¿Cómo maneja la herramienta los anclajes y alias de YAML (& y *)?

El analizador subyacente (js-yaml) resuelve los anclajes y alias antes de generar el JSON, así que un archivo YAML que use anclajes & y alias * para reutilizar un bloque de datos se convertirá a JSON con esos datos expandidos por completo en cada lugar donde se referencian.

¿Por qué mi número YAML apareció como cadena en JSON, o viceversa?

Si un valor está entre comillas en el origen YAML (por ejemplo, version: "3.10"), se trata como cadena a propósito; esto importa porque los números YAML sin comillas como 3.10 pueden perder el cero final al analizarse como flotante. Pon comillas a un valor en el YAML de origen si específicamente necesitas que se trate como texto.

¿Puedo convertir un archivo YAML con varios documentos (separados por ---)?

Esta herramienta convierte un único documento YAML a la vez. Si tu archivo tiene varios documentos separados por marcadores ---, convierte una sección a la vez, o quita los separadores y fusiónalos en un solo documento primero si eso se ajusta a tu caso de uso.

¿Se sube mi información a algún lugar?

No. La conversión se ejecuta completamente en tu navegador mediante la biblioteca js-yaml: no se envía nada a un servidor, lo que hace que sea seguro usarla con archivos de configuración reales, incluidos los que contienen nombres de host internos o detalles de infraestructura.

Herramientas relacionadas