FreeToGenerate.com

100% gratis · sin registro · nada se sube

Aquí aparecerá el resultado en cuanto escribas algo arriba.

Todo se procesa en tu navegador: nada se envía a ningún servidor.

También disponible en: English · Português · Français · العربية

Conversor de JSON a YAML y de YAML a JSON

Pega tu archivo, elige la dirección y obtén el resultado al instante, sin subir nada a ningún servidor.

¿Qué es un conversor de JSON a YAML?

Un conversor de JSON a YAML traduce un objeto JSON a la sintaxis de YAML, cambiando llaves y comillas por sangría y dos puntos sin tocar los datos que contienen. Esta herramienta trabaja en las dos direcciones: convierte de JSON a YAML y también de YAML a JSON, porque en la práctica necesitas una u otra según de dónde venga el archivo que tengas delante.

JSON es, de hecho, un subconjunto válido de YAML: cualquier documento JSON ya es un YAML correcto. Por eso la dirección YAML → JSON acepta sin problema tanto un YAML «de verdad» como JSON plano, y tú solo tienes que elegir a qué formato quieres llegar.

Todo el trabajo ocurre en tu navegador. No hace falta crear una cuenta, no hay límite de usos y el archivo que pegues no llega a ningún servidor.

Cómo se usa

  1. Elige la dirección. Selecciona JSON → YAML o YAML → JSON en el selector, o pulsa «Cargar un ejemplo» para probar la herramienta antes de pegar tu propio archivo.
  2. Pega tu código. Escribe o pega el JSON o el YAML en el área de texto. Si hay un error de sintaxis, el mensaje te indicará la línea y la columna exactas donde está el problema.
  3. Ajusta la sangría y copia el resultado. Elige 2 espacios, 4 espacios (o tabulador y minificar al convertir a JSON) y pulsa Copiar. El panel de avisos te dice, antes de que lo uses, qué se ha perdido en la conversión.

Qué sobrevive a la conversión y qué no

Puede que te haya mordido alguna vez el conocido «problema de Noruega»: en YAML 1.1, escribir NO a secas (el código de país de Noruega) se interpretaba como el booleano false, y lo mismo pasaba con yes, no, on y off. Esta herramienta usa el esquema core de YAML 1.2, donde eso no ocurre: country: NO sigue siendo la cadena «NO», y yes, no, on y off siguen siendo texto normal. Solo true y false, en cualquier combinación de mayúsculas y minúsculas, se convierten en booleanos. Por el mismo motivo, 12:30 no se convierte en el número 750 (como hacía YAML 1.1 al leer los dos puntos en base 60) ni 2024-01-15 se convierte en una fecha: los dos se quedan como texto.

Los números sí cambian de forma, aunque no de valor: 1.10 se convierte en 1.1 y 0123 se convierte en 123, porque YAML no tiene manera de recordar un cero decorativo una vez que lo ha leído como número. Es un problema real con las cadenas de versión: si necesitas conservar el texto exacto, escríbelo entre comillas antes de convertir.

Los enteros muy grandes también pierden precisión, y esto pasa en las dos direcciones: a partir de unos 9 mil billones (253) un número ya no se puede representar con exactitud, así que 12345678901234567890 acaba convertido en 12345678901234567000. La mayoría de conversores hacen esto en silencio; este detecta el problema y señala la clave exacta donde ocurrió, por ejemplo rows[0].id, mostrando el valor original y en qué se ha convertido.

Los comentarios se pierden sin remedio, porque JSON no tiene sintaxis para comentarios. La herramienta avisa cuando detecta que el YAML de entrada tenía alguno, y no se confunde: una # dentro de una cadena entre comillas no cuenta como comentario, y un #!/bin/sh dentro de un bloque de texto literal es contenido del script, no un comentario.

Las anclas y los alias de YAML (&nombre para definir un valor una vez, *nombre para reutilizarlo) tampoco tienen equivalente en JSON, así que se expanden: el contenido se copia en cada sitio donde se referenciaba y el vínculo entre las copias desaparece. La herramienta avisa cuando esto pasa.

Tres casos se rechazan directamente en vez de intentar adivinar qué querías decir: un archivo con varios documentos YAML separados por --- (habitual en los manifiestos de Kubernetes), que no tiene forma de convertirse en un único JSON, así que hay que convertir cada documento por separado; una clave repetida dentro del mismo objeto, que YAML prohíbe y que se señala con su número de línea en vez de quedarse en silencio con el último valor; y la sangría con tabuladores, que la especificación de YAML no permite.

¿Cuándo hace falta de verdad?

YAML es el formato de casi toda la configuración con la que trabaja quien programa: Docker Compose, los manifiestos de Kubernetes, los flujos de trabajo de GitHub Actions o los playbooks de Ansible se escriben en YAML porque admite comentarios y es más fácil de leer a mano que JSON. Pero muchas herramientas y APIs solo hablan JSON, y ahí es donde entra este conversor: pasas de un formato al otro sin reescribir nada a mano ni arriesgarte a un error de sangría.

El camino de ida y vuelta (de JSON a YAML y de vuelta a JSON) se comprobó con unos 2000 documentos generados al azar y siempre devuelve exactamente los mismos datos, salvo en los casos numéricos que se explican arriba y que la herramienta te señala uno por uno.

¿Por qué es gratis?

Porque no hace falta pagar por él: la conversión ocurre en tu navegador, no en un servidor, así que no hay ningún coste que trasladarte. No necesitas crear una cuenta, no hay límite de conversiones al día y el archivo que pegues no sale de tu equipo. Sin marcas de agua ni resultados a medias hasta que pagues: es la herramienta completa, siempre gratis.