Conversor JSON ↔ YAML

Convierte JSON a YAML o YAML a JSON con un clic, para Kubernetes, Docker Compose, pipelines de CI y especificaciones OpenAPI.

Funciona 100% en tu navegador. Nada de lo que pegas se sube ni se guarda.
Entrada JSON o YAML
Resultado
Listo.

Cómo usar el conversor JSON ↔ YAML

  1. Elige la dirección: JSON → YAML o YAML → JSON.
  2. Pega tu documento en el cuadro de entrada o escríbelo directamente.
  3. El resultado convertido aparece al instante. Si la entrada no es válida, el mensaje de error señala la línea que no se pudo analizar.
  4. Copia el resultado en tu manifiesto, tu archivo de pipeline o tu cliente de API.

La conversión se ejecuta por completo en tu navegador, así que los archivos de configuración con nombres de host internos o credenciales nunca se suben ni se almacenan en nuestros servidores.

JSON y YAML: los mismos datos, dos notaciones

JSON (JavaScript Object Notation) y YAML (YAML Ain't Markup Language) describen las mismas estructuras básicas: mapeos (objetos con pares clave-valor), secuencias (arrays) y escalares (cadenas, números, booleanos y null). Desde YAML 1.2, todo documento JSON válido es también YAML válido, por eso convertir JSON a YAML no pierde información. Hacerlo en sentido contrario tampoco suele perder nada, pero YAML tiene características que JSON no tiene, como comentarios, anclas y cadenas de bloque de varias líneas, y estas se aplanan o se descartan al generar JSON.

Los desarrolladores convierten de uno a otro constantemente:

  • Los manifiestos de Kubernetes se suelen escribir en YAML, mientras que kubectl get -o json y la propia API hablan JSON.
  • Los archivos de Docker Compose (compose.yaml) son YAML; convertirlos a JSON ayuda cuando se generan desde scripts.
  • GitHub Actions y la mayoría de los sistemas de CI definen los flujos de trabajo en YAML.
  • Las especificaciones OpenAPI se pueden escribir en cualquiera de los dos formatos, y muchas herramientas aceptan ambos.

Este es el mismo objeto en ambas notaciones:

{"service": "web", "replicas": 3, "ports": [80, 443], "debug": false}
service: web
replicas: 3
ports:
  - 80
  - 443
debug: false

Errores habituales de YAML

El «problema de Noruega»

YAML 1.1 trata yes, no, on, off, y y n sin comillas (con distintas mayúsculas y minúsculas) como booleanos. Así, una lista de códigos de país convierte Noruega en false en los analizadores que siguen YAML 1.1:

countries:
  - GB
  - NO     # YAML 1.1: false   esquema básico de YAML 1.2: "NO"
  - SE

YAML 1.2 limita los booleanos a true y false, pero muchas bibliotecas muy usadas siguen aplicando por defecto el comportamiento de 1.1. El hábito más seguro es poner entre comillas cualquier cadena que pueda confundirse con otro tipo: "NO", "on", "1.10", "0755". Los números de versión son una trampa clásica: 1.10 sin comillas se convierte en el número 1.1.

Sangría

YAML usa la sangría para expresar el anidamiento, y no se permiten tabuladores en la sangría. Un solo espacio mal alineado cambia la estructura o rompe el análisis:

spec:
  containers:
    - name: app
      image: nginx
     ports:          # falta un espacio: error de análisis
        - containerPort: 80

Anclas y alias

YAML permite definir un bloque una vez con &name y reutilizarlo con *name, a menudo combinado con la clave de fusión <<. JSON no tiene nada equivalente, así que el conversor expande cada alias en una copia completa:

defaults: &defaults
  restart: always
  logging: json
web:
  <<: *defaults
  image: nginx

Ten en cuenta que la clave de fusión es una extensión de YAML 1.1; no todos los analizadores la admiten.

Consejos para conversiones limpias

  • Los comentarios (# ...) se descartan al convertir YAML a JSON, porque JSON no tiene sintaxis de comentarios. Si los comentarios importan, conserva el archivo YAML como fuente de referencia.
  • Las cadenas de bloque de varias líneas (| conserva los saltos de línea, > los convierte en espacios) pasan a ser cadenas normales con escapes \n en JSON.
  • Los enteros grandes que superan 253 pueden perder precisión en herramientas basadas en JavaScript. Pon entre comillas los ID que deban mantenerse exactos.
  • Para pulir más el resultado, pásalo por el Formateador y validador de JSON o por el Formateador y validador de YAML.
Consejo: Un archivo puede contener varios documentos YAML separados por ---, como suelen hacer los paquetes de Kubernetes. JSON no tiene ese concepto, así que divide los archivos de varios documentos antes de convertir, o espera un solo documento en el resultado.

Preguntas frecuentes

¿Todo archivo JSON es YAML válido?

Con YAML 1.2, sí: se diseñó como un superconjunto de JSON. Puedes pasar JSON directamente a la mayoría de los analizadores de YAML. Convertirlo a YAML en estilo de bloque simplemente lo hace más fácil de leer y editar.

¿Por qué cambió el tipo de un valor YAML después de convertirlo?

Los escalares sin comillas los resuelve el analizador. Valores como no, off, 1e3, 0x1F o 2024-01-01 pueden convertirse en booleanos, números o fechas según la versión de YAML y la biblioteca. Ponlos entre comillas para que sigan siendo cadenas.

¿Puedo usar tabuladores en YAML?

No. La especificación de YAML prohíbe los caracteres de tabulación en la sangría. Usa espacios, normalmente dos por nivel, y configura tu editor para que inserte espacios automáticamente.

¿Sobreviven los comentarios a una conversión de ida y vuelta?

No. Los comentarios desaparecen en cuanto YAML se convierte en JSON, y no se pueden recuperar al convertir de nuevo. Guarda los comentarios en el archivo YAML original.

Actualizado

Copiado al portapapeles