La herramienta que necesitas, lista para usar

Convertidor de JSON a YAML

Pega el texto en el panel de JSON o en el de YAML y el otro cambia al instante. Puedes editar cualquiera de los dos, y al elegir una línea se ilumina en el otro lado la línea con el mismo valor. Las anclas, las claves de fusión y los varios documentos de los archivos de Kubernetes y Docker Compose se leen tal cual, y los valores que dependen de la versión de YAML, como no, on, 0755 y 12:30, se reúnen en la revisión de interpretación de más abajo.

Última modificación 2026-10-20Todo el cálculo ocurre en tu navegador
Ejemplos
Sangría
Sangría
Interpretar

Lo que escribes y tus archivos no se envían a ningún servidor.

Revisión de la interpretación de YAML

    Última modificación 2026-10-20No guardamos lo que escribes

    Criterio ROBERINLa herramienta que necesitas,
    lista para usar.
    • Claro a primera vistaEntradas y resultados donde los esperas.
    • Primero el resultadoLa cifra clave va primero; el proceso solo cuando lo necesitas.
    • Pedir menosSin registro ni datos innecesarios.

    JSON y YAML son dos notaciones para los mismos datos

    JSON agrupa los objetos entre llaves { } y las matrices entre corchetes [ ], y pone comillas dobles a las claves y a las cadenas. YAML expresa la misma estructura con sangría y un guion (-) al principio de cada elemento de una lista, y prescinde de casi todas las comillas. Un objeto JSON pasa a ser un mapeo de YAML y una matriz pasa a ser una secuencia. Los números, los booleanos y null también se corresponden. La especificación de YAML 1.2 indica que el objetivo principal de esa versión era que YAML fuera un superconjunto estricto de JSON, y por eso la mayoría de los documentos JSON válidos se pueden leer tal cual como YAML.

    Los dos paneles de este conversor se pueden editar. Si editas el de JSON, el de YAML se vuelve a generar; si editas el de YAML, se vuelve a generar el de JSON. La flecha del centro indica qué panel es ahora el original. Al hacer clic en una línea o moverte con las teclas de flecha, se ilumina en el otro panel la línea con el mismo valor, y la línea de ruta de abajo muestra la posición, por ejemplo owner › name, y el tipo del valor. Resulta especialmente útil en archivos YAML largos, donde la sangría por sí sola no basta para saber a qué elemento pertenece una línea.

    DatoJSONYAML
    Objeto / mapeo{"port": 8080}port: 8080
    Matriz / secuencia{"tags": ["web", "api"]}tags:
      - web
      - api
    Anidamiento{"db": {"host": "localhost"}}db:
      host: localhost
    Número y cadena con aspecto de número{"a": 8080, "b": "8080"}a: 8080
    b: "8080"
    Booleano y valor vacío{"on": true, "x": null}"on": true
    x: null
    Cadena de varias líneas{"memo": "primera línea\nsegunda línea"}memo: |-
      primera línea
      segunda línea
    Objeto vacío y matriz vacía{"a": {}, "b": []}a: {}
    b: []

    Cuándo hay que pasar de JSON a YAML y al revés

    Los archivos de configuración que editan las personas suelen estar en YAML, mientras que los datos que se intercambian los programas suelen estar en JSON. Por eso es habitual tener que usar los dos formatos en una misma tarea.

    • Manifiestos de Kubernetes: la documentación de Kubernetes recomienda escribir los archivos de configuración en YAML en lugar de JSON. Funcionan los dos, pero YAML resulta más legible para las personas. Hace falta convertir cuando quieres guardar como archivo YAML un recurso que has obtenido del clúster en JSON, o cuando pasas un manifiesto YAML a una API o a un script que solo acepta JSON.
    • Docker Compose y GitHub Actions: ambas herramientas aceptan la configuración únicamente en YAML. Si un ejemplo o una respuesta de API viene en JSON, hay que trasladarlo a YAML, y si se olvidan unas comillas puede cambiar el tipo de un valor.
    • Validar y comparar: para comprobar una configuración YAML con una herramienta que recibe JSON, como un validador de JSON Schema o jq, primero hay que convertirla a JSON. En un archivo de Compose con muchas anclas y claves de fusión, el JSON ya expandido permite ver de un vistazo qué valores recibe realmente cada servicio.
    • Comprobar las trampas antes de leer: incluso el mismo YAML cambia de significado si el programa que lo lee sigue YAML 1.1: no pasa a ser false y 0755 pasa a ser 493. La revisión de interpretación que aparece más abajo permite ver si tu archivo contiene valores así antes de desplegarlo.

    Cómo se usa

    1. Pega el texto en el panel que corresponda a lo que tienes, JSON o YAML. Si abres un archivo .json, .yaml o .yml con el botón Abrir o arrastrándolo, se coloca en el panel que corresponde a la extensión.
    2. El resultado aparece enseguida en el otro panel. Si editas el panel del resultado, ese panel pasa a ser el original y el primero se vuelve a generar.
    3. Al elegir una línea, se ilumina en el otro panel la línea con el mismo valor; cuando los paneles están uno al lado del otro, se dibuja una línea de conexión entre ambas. Si te desplazas en un panel, el otro se mueve a la misma posición.
    4. Con las opciones que hay encima de los paneles eliges la sangría (JSON: 2 espacios, 4 espacios o minificado; YAML: 2 o 4 espacios), la versión de YAML con la que se interpreta (1.2 o 1.1) y si una matriz se divide en varios documentos YAML.
    5. Con los botones de debajo de los paneles puedes copiar el contenido o guardarlo como archivo. Si el archivo que abriste era app.yaml, el JSON se guarda como app.json.

    Valores que YAML 1.1 y 1.2 interpretan de forma distinta

    YAML decide el tipo de un valor sin comillas según su aspecto, y esas reglas cambian de una versión a otra. El esquema Core de YAML 1.2 solo admite como booleanos true y false (con algunas variantes de mayúsculas y minúsculas) y solo acepta el prefijo 0o para el octal. Las reglas de tipos de YAML 1.1, anteriores, leen yes, no, on, off, y y n como booleanos, los enteros que empiezan por 0 como octales, los números unidos con dos puntos como base 60 y todo lo que tiene la forma 2024-03-01 como una fecha. En cambio, la regla de los números reales de 1.1 exige un punto decimal, de modo que 1e5 es una cadena en 1.1.

    El problema es que todavía hay muchos programas que leen YAML a la manera de 1.1. PyYAML, de Python, se presenta como un intérprete completo de YAML 1.1. El paquete yaml v3 de Go sigue en su mayor parte la versión 1.2, pero lee y escribe el octal como 0777, igual que 1.1, y acepta yes, no, on y off como booleanos solo cuando se decodifican en un tipo booleano. La documentación de Kubernetes también indica que para los valores booleanos se usen solo true o false, y no yes, no, on ni off, y que se entrecomillen los valores que parezcan booleanos. La documentación de Docker Compose, por su parte, indica que los puertos con el formato HOST:CONTAINER se escriban siempre como cadenas entrecomilladas para que no choquen con la base 60 de YAML.

    Valor sin comillasYAML 1.2 CoreYAML 1.1Resultado de JSON → YAML
    truebooleano truebooleano true"true"
    yescadena "yes"booleano true"yes"
    nocadena "no"booleano false"no"
    oncadena "on"booleano true"on"
    NOcadena "NO"booleano false"NO"
    ycadena "y"booleano true"y"
    ~nullnull"~"
    0755número 755número 493 (octal)"0755"
    0o17número 15 (octal)cadena "0o17""0o17"
    12:30cadena "12:30"número 750 (base 60)"12:30"
    2222:22cadena "2222:22"número 133342 (base 60)"2222:22"
    8080:80cadena "8080:80"cadena "8080:80"8080:80
    1e5número 1e5cadena "1e5""1e5"
    1_000cadena "1_000"número 1000"1_000"
    2024-03-01cadena "2024-03-01"fecha"2024-03-01"

    La última columna muestra cómo se escribe en YAML un valor que en JSON era una cadena. Si en alguna de las dos versiones podría leerse como algo distinto de una cadena, se entrecomilla con comillas dobles. 8080:80 no necesita comillas porque el 80 que sigue a los dos puntos supera un dígito de base 60 (de 0 a 59), así que en ambas versiones es una cadena; en cambio, un puerto como 2222:22, cuyo segundo número es 59 o menos, se convierte en número en 1.1.

    Cuando el panel de YAML es el original, la revisión de interpretación que aparece debajo busca todos los valores del documento que las dos versiones interpretan de forma distinta y los muestra con su número de línea. Al pulsar una ficha, se salta a esa línea. Si cambias la versión de interpretación a 1.1, el resultado JSON también se vuelve a generar con las reglas de 1.1, de modo que puedes ver de antemano los valores que recibiría realmente un programa como PyYAML.

    Qué pasa con lo que solo existe en YAML

    YAMLResultado en JSON
    Comentario # …No se incluye. La línea de estado indica cuántos hay
    Ancla &base y alias *baseEn el lugar del alias se expande el valor del ancla
    Clave de fusión <<: *baseLas claves importadas se fusionan en ese mapeo. Si una clave está escrita directamente, se conserva su valor
    Varios documentos ---Una matriz con un elemento por documento
    Cadena en bloque |, >Una cadena con los saltos de línea como \n (> une las líneas con un espacio)
    Etiqueta personalizada como !RefSe quita la etiqueta y se conserva solo el valor. Se indica en la revisión de interpretación
    Clave numérica 1: aClave de cadena "1"
    Mapeo con [ ] o { } como claveError. Las claves de JSON solo pueden ser cadenas
    .inf, .nanError. Los números de JSON no tienen infinito ni NaN

    Al convertir JSON a YAML se respeta el orden de las claves tal como se escribieron. El intérprete de JSON que traen los navegadores mueve al principio del objeto las claves con forma de entero, como "2024", así que este conversor lee el JSON con un intérprete propio que conserva el orden. Las cadenas con saltos de línea se escriben como un bloque |, y los objetos y las matrices vacíos se escriben como {} y [].

    Los números se copian tal como están escritos

    La especificación de JSON (RFC 8259) explica que las implementaciones intercambian números sin problemas cuando no esperan más precisión que la de los números de doble precisión IEEE 754 binary64. Los navegadores tratan los números de ese modo, así que un conversor corriente convierte 9007199254740993 en 9007199254740992 y 4.50 en 4.5. Este conversor no calcula con los números, sino que copia los dígitos tal como están escritos, por lo que no ocurre ninguno de esos cambios. Solo las notaciones que JSON no tiene, como 0o17 o 0x1F en el lado de YAML, se convierten en el mismo valor en decimal.

    Hay una excepción. El número JSON 1e5 es un número en YAML 1.2, pero en YAML 1.1 no tiene punto decimal y es una cadena. Por eso, al convertir de JSON a YAML, la notación exponencial se escribe con punto decimal y signo, como 1.0e+5. Ambas versiones leen eso como el número 100000. La revisión de interpretación señala los números reescritos.

    Errores frecuentes

    • Tabuladores en la sangría: la especificación de YAML prohíbe los tabuladores en la sangría porque cada sistema los trata de forma distinta. Sustituye los tabuladores por espacios en tu editor.
    • Sin espacio tras los dos puntos: port:8080 es una sola cadena, no una clave. Entre la clave y el valor tiene que haber un espacio después de los dos puntos, como en port: 8080.
    • La misma clave dos veces: la especificación de YAML exige que las claves de un mapeo sean únicas, y la de JSON advierte de que el comportamiento de un programa que recibe un objeto con nombres repetidos es impredecible. Este conversor avisa de una clave repetida como error en cualquiera de los dos casos. Las claves YAML 1: y "1": también chocan, porque en JSON son la misma clave.
    • Sintaxis laxa de JSON: una coma después del último elemento, las comillas simples, las claves sin comillas y los comentarios // no son JSON estándar. Si tu configuración está escrita en JSON5 o JSONC, corrige esos detalles antes de pegarla.
    • La clave on: en GitHub Actions: la clave on: de un flujo de trabajo es la cadena "on" en YAML 1.2, pero un intérprete a la manera de 1.1 la lee como el booleano true. Por eso la clave parece desaparecer cuando lees un archivo de flujo de trabajo con un script de Python y lo modificas.
    • Valores con aspecto de hora o de puerto: 18:30 y 2222:22 son números de base 60 en 1.1. Es más seguro entrecomillar las horas y los puertos.

    Límites y precauciones

    • Se convierten entradas de hasta 5 MB (5.242.880 bytes) y resultados de hasta 10 MB. Se pueden abrir archivos UTF-8 (con o sin BOM) y archivos UTF-16 con BOM.
    • Los comentarios de YAML, el estilo de las comillas y las líneas en blanco no se conservan al volver a generar el YAML. Si usas YAML como original y luego editas el panel de JSON, el YAML se escribe de nuevo, así que un YAML que tenía comentarios puede recuperarse una vez con Deshacer en la línea de estado.
    • Las etiquetas personalizadas, como !Ref de CloudFormation, se quitan y se conserva solo el valor. No se convierten a la forma {"Ref": …} que CloudFormation usa en JSON.
    • Si los alias se expanden hasta una cantidad excesiva de datos (un alias que apunta a un grupo de alias, y así sucesivamente), la conversión se detiene para evitar el agotamiento de recursos.
    • La interpretación de YAML 1.1 sigue las reglas de tipos de 1.1 de yaml.org. Algunos casos límite difieren de los programas reales al estilo de 1.1. Por ejemplo, y y n son booleanos según esas reglas, pero PyYAML los lee como cadenas. El resultado de JSON → YAML entrecomilla todos esos valores, así que siguen siendo cadenas se lean como se lean.
    • La conversión solo trata la sintaxis. Si los nombres de clave y los tipos de valor se corresponden con lo que exigen Kubernetes o Compose, conviene comprobarlo con el comando de validación de cada herramienta.

    Fuentes

    Preguntas frecuentes

    ¿Por qué al convertir JSON a YAML algunos valores llevan comillas?

    Valores como "no", "on", "0012", "18:30" y "2024-03-01" se leerían en YAML como booleanos, números o fechas, y no como cadenas, si no tuvieran comillas, por eso se entrecomillan con comillas dobles. Así, un valor que en JSON era una cadena sigue siendo una cadena en YAML; el valor en sí no cambia.

    ¿Qué diferencia hay entre YAML 1.1 y 1.2?

    Usan reglas distintas para decidir el tipo de un valor sin comillas. En el esquema Core de 1.2 los únicos booleanos son true y false, así que yes, no, on y off son cadenas. YAML 1.1 también lee como booleanos yes, no, on, off, y y n, lee 0755 como el octal 493, 12:30 como el número de base 60 750 y 2024-03-01 como una fecha. PyYAML es un intérprete de YAML 1.1.

    ¿Se pasan los comentarios de YAML a JSON?

    No. JSON no tiene sintaxis de comentarios. La línea de estado indica cuántos comentarios se han quedado fuera, y si estabas usando YAML como original y editaste el panel de JSON, de modo que el YAML se ha vuelto a generar, el botón Deshacer recupera el YAML original.

    ¿Qué pasa con las anclas (&) y las claves de fusión (<<)?

    Un alias (*) se expande al valor al que apunta su ancla, y una clave de fusión incorpora en ese lugar las claves del mapeo importado. Si ya existe la misma clave, se conserva el valor escrito directamente en ese mapeo. JSON no tiene sintaxis de referencias, así que el mismo valor se repite en todos los sitios donde se usa.

    ¿Qué pasa con varios documentos separados por ---?

    Si hay dos o más documentos, se obtiene una matriz JSON con un elemento por documento. En sentido contrario, activa el interruptor «Matriz = documentos (---)» para escribir cada elemento de una matriz JSON de nivel superior como un documento independiente en el panel de YAML.

    ¿Se conservan los números grandes y valores como 4.50?

    Los números se copian tal como están escritos, así que un entero grande como 9007199254740993 y el cero final de 4.50 no cambian. La notación exponencial como 1e5 se escribe como 1.0e+5 para que YAML 1.1 también la lea como número. Si el programa que lee el resultado convierte los números a doble precisión, ese programa puede redondear un entero grande.

    ¿Dónde tengo que corregir un error?

    La línea de ruta muestra el panel con el error, la línea, la columna y el motivo, y se resalta el número de línea. Las causas habituales son los tabuladores en la sangría, la falta de un espacio después de los dos puntos, y en JSON una coma final, comillas simples o un comentario. Si pegaste YAML en el panel de JSON, aparece el botón «Pasar al panel de YAML».

    ¿Mi archivo de configuración se envía a un servidor?

    No. La conversión se hace únicamente en tu navegador y lo que escribes y tus archivos no se envían a ningún servidor. Tampoco se guarda nada en la barra de direcciones ni en el almacenamiento del navegador, así que una configuración con contraseñas o tokens no sale de esta pantalla.