Convertidor de YAML a JSON
Convierte datos YAML a JSON. Transforma al instante en tu navegador estructuras escritas en YAML —manifiestos de Kubernetes, docker-compose.yml, archivos de configuración de CI— a un formato que herramientas exclusivas de JSON como jq puedan procesar.
Qué es la conversión de YAML a JSON
La conversión de YAML a JSON toma una configuración escrita en el formato YAML, pensado para que las personas lo lean y editen con comodidad —manifiestos de Kubernetes, archivos docker-compose.yml, definiciones de flujos de trabajo de GitHub Actions— y la transforma, directamente en tu navegador, en JSON, un formato que los programas pueden procesar de manera mecánica. Esta herramienta entiende mapas (`clave: valor`), secuencias de bloque (`- elemento`), secuencias de flujo (`[a, b, c]`), mapas de flujo (`{a: 1, b: 2}`), escalares básicos como cadenas de texto, enteros, decimales, booleanos y nulos, además de comentarios con `#`. Mientras tu YAML se limite a las construcciones habituales en los archivos de configuración del día a día, puedes pegarlo y obtener de inmediato una representación JSON funcional.
Dicho esto, este conversor no implementa la especificación YAML 1.2 completa. Deja fuera deliberadamente las anclas (`&`) y los alias (`*`) usados para reutilizar valores, los flujos multidocumento (una segunda marca `---` o posterior provoca un error), los escalares de bloque (`|` y `>`) para cadenas de varias líneas, y las secuencias anidadas en la misma línea como `- - elemento`. Si tu entrada depende de alguna de estas funciones avanzadas, la conversión fallará con un error, así que conviene reescribir esa parte en una forma equivalente más simple antes de pegarla. Todo el procesamiento se ejecuta localmente en tu navegador: nada de lo que pegues se envía jamás a un servidor externo, algo importante cuando el YAML que estás revisando contiene credenciales o detalles de infraestructura interna.
Cómo usar el convertidor de YAML a JSON
- Pega tu YAML Pega el YAML que quieras convertir en el cuadro de entrada de la izquierda. Si no tienes un archivo a mano, pulsa "Cargar ejemplo" para probar primero con un ejemplo funcional.
- Revisa el JSON convertido El resultado en JSON aparece a la derecha en cuanto escribes o pegas el texto. Si la entrada tiene un problema de sintaxis, se muestra en su lugar un mensaje de error que explica la causa probable.
- Activa o desactiva el formato legible Activa "Formato legible" para obtener un diseño con sangría fácil de leer, o desactívalo para reducirlo todo a una sola línea sin saltos de línea, según convenga al lugar donde vayas a pegar el resultado.
- Copia o descarga el resultado Usa el botón de copiar para enviar el JSON directamente al portapapeles, o el botón de descargar para guardarlo como un archivo .json independiente para usarlo más adelante.
Consejos para aprovecharla mejor
- Pega directamente un manifiesto de Kubernetes o un docker-compose.yml para visualizar su estructura como JSON, de modo que herramientas de línea de comandos como jq, que solo entienden JSON, puedan consultarlo.
- Los valores sin comillas que empiezan con un cero a la izquierda, como códigos postales o números de teléfono, se interpretan como números y pierden ese cero inicial; pon siempre comillas a los valores que quieras conservar como texto.
- El YAML complejo que usa anclas (`&`), alias (`*`) o escalares de bloque (`|`/`>`) no es compatible. Reescríbelo en una forma más simple antes de pegarlo.
- Desmarca "Formato legible" para obtener un JSON en una sola línea sin saltos de línea, útil al pegarlo en el cuerpo de una solicitud a una API donde no se quieren saltos de línea.
Dónde ayuda la conversión de YAML a JSON
Consultar un manifiesto de Kubernetes con jq
Los manifiestos pueden llegar fácilmente a varios cientos de líneas. Conviértelo a JSON y pásalo a jq, y una ruta como `.spec.containers[].image` extrae al instante exactamente el valor que necesitas.
Pasar docker-compose.yml a un script
Si un script o una automatización que estás escribiendo no incluye ya un analizador de YAML, convertir primero el archivo compose a JSON te permite leerlo con nada más que un analizador JSON estándar.
Visualizar la estructura de una configuración de CI
Pega un archivo de flujo de trabajo de GitHub Actions o GitLab CI para ver su estructura convertida en JSON: las relaciones anidadas que son fáciles de perder de vista con solo la indentación se vuelven rutas de clave explícitas.
Prepararte para trabajar con una herramienta o API que solo acepta YAML
Aunque tu fuente de datos sea JSON, convertir primero un archivo YAML existente puede ayudarte a confirmar exactamente cómo está organizada su estructura antes de programar contra él.
Encadenar con otras herramientas de JSON
Pega el JSON convertido directamente en JSON a definiciones de tipos de TypeScript o en el formateador de JSON para seguir trabajando con él.
Glosario de YAML
- YAML
- Un acrónimo recursivo de "YAML Ain't Markup Language". YAML representa la estructura anidada mediante indentación en lugar de corchetes, y permite comentarios y comillas mayormente opcionales, por lo que es el formato preferido para los archivos de configuración que las personas editan a mano.
- Mapa (mapping)
- Una estructura de YAML que empareja claves con valores usando la sintaxis `clave: valor`. Corresponde a un objeto JSON, y las líneas que comparten el mismo nivel de indentación se tratan como claves que pertenecen al mismo nivel de la estructura.
- Secuencia de bloque
- Un arreglo de YAML escrito como una serie de líneas que empiezan cada una con un guion y un espacio, como `- elemento`. Corresponde a un arreglo JSON; esta herramienta lee una serie de líneas `-` en el mismo nivel de indentación como un único arreglo.
- Estilo de flujo
- Una forma de escribir una secuencia o un mapa en una sola línea sin usar el estilo de bloque basado en indentación, como `[a, b, c]` o `{a: 1, b: 2}`. Se parece mucho más a cómo se escriben los arreglos y objetos de JSON.
- Anclas y alias
- Una función de YAML donde `&nombre` etiqueta un valor para que pueda referenciarse en otro lugar con `*nombre`, permitiendo reutilizar el mismo bloque de configuración sin repetirlo. Esta herramienta no admite esta función.
- Escalar de bloque
- Una forma de escribir una cadena de varias líneas que empieza con `|` (que conserva los saltos de línea) o `>` (que los pliega en espacios). Es habitual para incrustar scripts de shell o descripciones largas, pero esta herramienta no lo admite.
- Flujo de documentos
- Un mecanismo para agrupar varios documentos YAML en un solo archivo, separados por marcas `---`. Las configuraciones de Kubernetes suelen agrupar así varios recursos, pero esta herramienta solo convierte un documento a la vez.
Preguntas frecuentes
A propósito — Por qué los archivos de configuración se escriben en YAML pero las herramientas piden JSON
YAML se usa ampliamente para archivos de configuración que las personas editan directamente —Kubernetes, docker-compose, flujos de trabajo de GitHub Actions, playbooks de Ansible— gracias a su legibilidad: permite comentarios y las comillas son en su mayoría opcionales. JSON, en cambio, tiene una especificación pequeña y sin ambigüedades, fácil de procesar mecánicamente por los programas, lo que lo ha convertido en el formato estándar para el intercambio de datos de APIs y herramientas de línea de comandos como jq.
La conversión de YAML a JSON tiende un puente sobre esta brecha entre "las personas escriben YAML, las herramientas piden JSON". Los manifiestos de Kubernetes en particular pueden llegar a cientos de líneas, y `grep` por sí solo pronto encuentra sus límites al buscar un valor concreto. Al convertir primero a JSON y consultarlo con jq, puedes extraer exactamente el valor que necesitas con una ruta como `.spec.containers[].image`.
Dicho esto, la especificación completa de YAML (YAML 1.2) es enorme y cubre funciones avanzadas como la reutilización de valores mediante anclas y alias, flujos multidocumento y escalares de bloque para cadenas multilínea. Esta herramienta omite deliberadamente toda esa superficie y se centra en el "subconjunto común" de mapas, secuencias y escalares básicos que aparece en la práctica, manteniendo así una implementación simple sin dependencias externas.