JSON ↔ YAML

Conversor JSON ↔ YAML

Conversión bidireccional pensada para k8s, GitHub Actions, Docker Compose y helm. Vista previa en vivo, salida YAML idiomática, todo en tu navegador.

js-yaml es estupendo, pero añade unos 30 KB minificados a cada carga de página. El YAML de archivos de configuración del mundo real usa una pequeña porción de la especificación: mapeos de bloque, secuencias de bloque, estilo de flujo, tipos escalares y literales multilínea. Hemos implementado a mano exactamente ese subconjunto (~5 KB), por lo que la carga en frío sigue siendo rápida. Si tu YAML usa anchors, alias o tags personalizados, pégalo en una pipeline de CI que use js-yaml.

Tres funciones poco habituales en archivos de configuración: (1) anchors y alias (&name / *name) — usados para deduplicar dentro de un documento; (2) tags personalizados (!!str / !!float / !!omap) — usados para sobrescribir la inferencia implícita de tipos; (3) archivos multidocumento con separadores ---. Ninguna de ellas aparece en archivos estándar de k8s, GitHub Actions, Docker Compose, helm o ansible. Si las necesitas, recurre a un parser YAML completo.

Entrada JSON
Salida YAML

Creado para YAML de DevOps del mundo real

k8s, GitHub Actions, Docker Compose, helm, ansible — y unos pequeños detalles que lo hacen realmente agradable de usar.

Bidireccional, en vivo

Pega cualquiera de los dos formatos y obtén el otro al instante. La salida se actualiza con cada pulsación — sin botón Convertir. Cambia la dirección con un clic y la misma herramienta funciona al revés.

Subconjunto YAML 1.2 para archivos de configuración

Mapeos de bloque y de flujo, secuencias de bloque y de flujo, escalares (cadena, número, booleano, null), bloques escalares literales multilínea (|) y plegados (>). Cubre el 99% de los manifiestos de k8s, GitHub Actions, Docker Compose, GitLab CI, valores de helm y playbooks de ansible.

Salida YAML idiomática

JSON → YAML genera el YAML que escribirías a mano: claves en estilo plano (sin comillas), las cadenas solo se entrecomillan cuando colisionan con palabras reservadas (true/false/null/yes/no) o números, las cadenas multilínea se representan como bloques escalares |, sangría configurable de 2 o 4 espacios.

Round-trip seguro

JSON → YAML → JSON produce un documento idéntico byte a byte. Convierte en cualquier dirección y la otra dirección siempre revierte limpiamente. Sin pérdidas silenciosas de tipos ni valores forzados.

Privacidad por diseño

Tu configuración nunca sale de tu dispositivo. El parser y el serializador escritos a mano se ejecutan como JavaScript local. Abre DevTools → Network y comprueba cero peticiones salientes.

Pequeño + rápido

JavaScript puro, sin dependencia de js-yaml. La carga en frío ocupa menos de 25 KB comprimidos con gzip. Un manifiesto k8s de 100 KB se convierte en menos de 30 ms en un portátil normal.

Cómo convertir JSON ↔ YAML

Tres pasos desde la configuración en bruto hasta el formato que necesitas.

  1. 1

    Pega tu JSON o YAML

    Suelta tu configuración en el panel Entrada. La herramienta detecta qué formato has pegado mediante el desplegable Dirección — cámbialo si hace falta. La conversión se ejecuta en vivo con cada pulsación.

  2. 2

    Ajusta la sangría y verifica

    La sangría por defecto es de 2 espacios (convención de k8s / GitHub Actions). Cambia a 4 si tu equipo usa esa. Pulsa Intercambiar para mover la salida de vuelta a la entrada — útil para verificar el round-trip (pega JSON, conviértelo a YAML, intercambia, convierte de vuelta y compara con el original).

  3. 3

    Copia o descarga

    Pulsa el icono de copiar para enviar la salida al portapapeles, o el icono de descargar para guardarla como output.yaml u output.json. La diferencia de tamaño en bytes se muestra en el pie para que veas lo compacta que es la representación YAML.

Pensado para equipos de DevOps + backend

Cuatro escenarios habituales en los que una herramienta de navegador con privacidad supera a escribir un script de Python ad hoc.

Round-trip de manifiestos de Kubernetes

kubectl get deployment my-app -o json → pega aquí → YAML → edita → aplica. O bien: pega un manifiesto YAML de la documentación de un proveedor, conviértelo a JSON, pásalo por jq para filtrar, conviértelo de nuevo a YAML y haz commit.

Snippets de GitHub Actions / GitLab CI desde posts de blog

Una entrada de blog muestra un snippet de CI como JSON en su tema de docs. Pégalo aquí, obtén YAML y pégalo en .github/workflows/ci.yml. O: toma un workflow YAML con varios jobs, conviértelo a JSON para edición programática y vuelve a convertirlo.

Helm values + Docker Compose

Los archivos de valores de Helm son YAML; algunas herramientas de plantillas quieren JSON. Pega tu values.yaml, obtén JSON, pásalo por tu herramienta, pégalo de vuelta y conviértelo a YAML para hacer commit. Mismo flujo para el compose.yaml de Docker Compose.

Configuraciones sensibles que no pueden ir a un servicio externo

Configuraciones que contienen claves de API, secretos, hostnames internos, datos de clientes — cualquier cosa que no puedas pegar en un conversor en la nube. La herramienta solo en navegador mantiene cada byte en tu portátil. Abre DevTools → Network y verifica que nada sale.

100% privada — se ejecuta en tu navegador

Tus configuraciones nunca salen de tu dispositivo. Abre DevTools → Network y verás cero peticiones salientes durante la conversión.

  • El parser de YAML hecho a mano, el serializador de YAML, el JSON.parse nativo y el portapapeles / descarga se ejecutan todos como JavaScript en tu máquina — sin CDN de js-yaml, sin API de terceros.
  • Sin login, sin telemetría sobre el contenido de la configuración. Solo usamos una cookie para el estado del consentimiento de cookies y otra para la preferencia de idioma.
  • Si gestionas configuración de infraestructura sensible (snippets de kubeconfig, manifiestos con secretos, certificados firmados), la historia de privacidad importa — pega con confianza. Verificable en DevTools.

Guías relacionadas

Lecturas seleccionadas sobre patrones de configuración YAML, herramientas para JSON y formatos de archivos en DevOps.

Preguntas frecuentes

¿Por qué crear soporte de YAML si ya existe <code>js-yaml</code>?

js-yaml es estupendo, pero añade unos 30 KB minificados a cada carga de página. El YAML de archivos de configuración del mundo real usa una pequeña porción de la especificación: mapeos de bloque, secuencias de bloque, estilo de flujo, tipos escalares y literales multilínea. Hemos implementado a mano exactamente ese subconjunto (~5 KB), por lo que la carga en frío sigue siendo rápida. Si tu YAML usa anchors, alias o tags personalizados, pégalo en una pipeline de CI que use js-yaml.

¿Qué funciones de YAML NO se admiten?

Tres funciones poco habituales en archivos de configuración: (1) anchors y alias (&name / *name) — usados para deduplicar dentro de un documento; (2) tags personalizados (!!str / !!float / !!omap) — usados para sobrescribir la inferencia implícita de tipos; (3) archivos multidocumento con separadores ---. Ninguna de ellas aparece en archivos estándar de k8s, GitHub Actions, Docker Compose, helm o ansible. Si las necesitas, recurre a un parser YAML completo.

¿Se conservan los comentarios?

No — los comentarios se eliminan al parsear. YAML admite comentarios (#...) pero JSON no. Hacer round-trip de YAML a través de JSON pierde la información de los comentarios por definición. Preferimos eliminar los comentarios al parsear antes que intentar conservarlos con trucos. Si necesitas edición de YAML que preserve comentarios, edita el YAML directamente.

¿Por qué mi número se está convirtiendo en una cadena?

Las reglas de tipos implícitos de YAML son más laxas que las de JSON: 1.2.3 es una cadena en YAML (no un número, porque tiene dos puntos), y cadenas de versión como v1.2 son cadenas a menos que vayan entrecomilladas. Seguimos las reglas de tipos implícitos de YAML 1.2: solo los dígitos que coinciden con ^-?\d+(\.\d+)?([eE][-+]?\d+)?$ se convierten en números; cualquier otra cosa permanece como cadena. Si necesitas un manejo numérico exacto, entrecomilla el valor en YAML o usa JSON directamente.

¿Se envía algo a vuestro servidor?

No. El parser de YAML, el serializador, el parser de JSON y la copia al portapapeles se ejecutan todos en JavaScript en tu dispositivo. Abre DevTools → Network y verás cero peticiones salientes durante la conversión. Pega manifiestos de k8s en producción, configuraciones internas de CI, valores de helm con secretos — nada sale de tu portátil.