KeroTools

Convertir YAML a JSON y Viceversa

Convierte archivos YAML a JSON o JSON a YAML al instante — herramienta gratis para desarrolladores.

Entrada
0 caracteres
Salida

Tu archivo se queda en tu equipo

Nada que borrar después

Seguro para pipelines y secretos

Funciona en todo navegador moderno

Cómo funciona

  1. 1

    Pega YAML o JSON

    Una definición de pipeline, un manifiesto de Kubernetes, un archivo compose, un archivo de idioma o una carga de API.

  2. 2

    Lee los avisos

    Valores retipados, comentarios perdidos y claves duplicadas se listan antes de que te lleves la salida.

  3. 3

    Copia el resultado

    Llévalo a un repositorio, un cuerpo de petición, un archivo de configuración o un juego de pruebas.

Por qué usar esta herramienta

Los tipos adivinados se señalan

Todo valor sin comillas que YAML leería como booleano, número o fecha se te muestra antes de convertir.

El problema noruego se detecta

Un NO suelto es mucho más veces un código de país que la palabra falso, y se te dice cuál te ha tocado.

Los ceros iniciales sobreviven

Teléfonos, códigos postales e identificadores conservan el cero que una lectura octal se comería.

La pérdida de comentarios se informa

JSON no tiene comentarios, así que se te dice cuántos desaparecerán en vez de descubrirlo en la revisión.

Anclas y alias explicados

Los nodos compartidos se expanden camino de JSON, y la expansión se muestra: nada cambia a tus espaldas.

Nada sale del navegador

Archivos de pipeline, manifiestos y playbooks se convierten en esta página y no se suben a ninguna parte.

YAML adivina qué significan tus valores, y esas adivinanzas tienen víctimas célebres

JSON te pide que digas qué es un valor: las comillas hacen una cadena, los dígitos sueltos hacen un número y nada es ambiguo. YAML, en cambio, infiere, y esa inferencia es la mayor fuente de sorpresa del formato. El caso más conocido tiene nombre propio: el problema noruego. Escribe una lista de códigos de país y la entrada `NO` no llega como la cadena que Noruega espera; bajo las reglas de YAML 1.1 llega como el booleano falso, porque la especificación enumera `y`, `yes`, `n`, `no`, `on`, `off`, `true` y `false` en todas sus mayúsculas como literales booleanos. La misma regla convierte el `ON` de Ontario en verdadero, convierte una columna de respuestas `Y` y `N` en booleanos y convierte el `NO` de un conjunto de datos de química en un falso. Empeora porque los analizadores discrepan: YAML 1.2 redujo la lista a `true` y `false`, pero mucho software sigue implementando 1.1 o algo intermedio, así que el mismo archivo significa cosas distintas en Python, en Go y en Ruby. El arreglo es un carácter de comilla, y lo difícil es saber dónde hace falta. Para eso están los avisos de aquí.

Números que no son los números que escribiste

La segunda familia de sorpresas es más silenciosa que la primera, porque produce un valor en lugar de un error. Un cero inicial tiene significado en YAML 1.1: `0755` es octal y vale 493, lo que está bien si pensabas en permisos de archivo y mal en cualquier otro caso. Un teléfono escrito como `0612345678` deja por tanto de ser esa cadena, y un identificador que empieza por `08` o `09` ni siquiera es octal válido, así que los analizadores se reparten entre lanzar un error y volver a una cadena: el mismo archivo carga limpio en una máquina y falla en otra. Los números de versión sufren de otro modo: `1.10` es un decimal, y los decimales no conservan ceros finales, así que el valor vuelve como 1.1 y tu fijación de dependencia apunta ahora a otra publicación. YAML 1.1 también entendía el sexagesimal, y por eso `12:30:00` podía llegar como 45000 y una dirección MAC convertirse en un entero enorme. Y un escalar con aspecto de fecha como `2026-07-31` se analiza como objeto fecha en vez de como cadena, que es por lo que un campo de versión o una referencia de factura llega a veces como marca de tiempo en un lenguaje y como texto en otro.

En español la palabra “no” es una respuesta, y YAML la lee como falso

El problema noruego se cuenta casi siempre con códigos de país, pero en español muerde por otro sitio y con más frecuencia: el idioma mismo. `no` y `sí` son respuestas perfectamente normales en cualquier archivo de datos, así que una fila `acepta_publicidad: no` no guarda la palabra que escribiste, guarda un booleano falso, y `respuesta: no` deja de distinguirse de `respuesta: false`. Eso parece inofensivo hasta que necesitas los tres estados que el formulario tenía —sí, no y sin responder— y descubres que el tercero se ha vuelto indistinguible del segundo, porque una clave sin valor también es null. Hay un detalle que empeora esto en español y conviene decirlo: `sí` con tilde no está en la lista de literales de YAML, así que se queda como texto, mientras que `si` sin tilde tampoco lo está pero `yes` sí. El resultado es un archivo donde la respuesta afirmativa es una cadena y la negativa es un booleano, dos tipos distintos en la misma columna, y ninguna herramienta avisa. La norma que resuelve todo el asunto es la misma de siempre en YAML: si es texto para leer, va entre comillas.

Convertir a JSON pierde cosas, y los comentarios son la que echarás de menos

A YAML se le describe a menudo como un superconjunto de JSON, y para los datos es casi cierto, pero solo para los datos. Lo que YAML añade no sobrevive al viaje de ida y vuelta. Los comentarios son la pérdida obvia y dolorosa: un manifiesto de Kubernetes, un pipeline de integración o un playbook de Ansible suele ser mitad explicación, y un paso por JSON borra cada línea en silencio, que es como alguien acaba revisando una configuración cuyo razonamiento se ha evaporado. Las anclas y los alias son la segunda pérdida. YAML permite definir un nodo una vez con `&defaults`, referenciarlo con `*defaults` y fusionarlo en otros mapeos mediante la clave de fusión; JSON no tiene ese concepto, así que la conversión debe expandir cada referencia en una copia. El documento sigue significando lo mismo, pero la definición compartida ha desaparecido y una edición futura pensada para cambiar cinco sitios cambia ahora uno. YAML admite además varios documentos en un mismo flujo y claves que no son cadenas, y ninguna de las dos cosas tiene equivalente en JSON. Esta herramienta informa de cada uno de estos puntos en vez de ejecutarlos sin ruido.

A un analizador de YAML se le puede pedir que construya objetos, y eso es un fallo de ejecución de código

Esta es la propiedad de seguridad que separa YAML de JSON, y conviene decirla sin rodeos porque los valores por defecto han sido históricamente los equivocados. YAML admite etiquetas que le dicen al analizador qué tipo construir, y varias implementaciones lo tomaron al pie de la letra: un documento que contenga `!!python/object/apply:os.system` le ordena a un cargador ingenuo llamar a esa función con los argumentos que tú suministres. En PyYAML, la función llamada `load` hizo exactamente eso durante años mientras `safe_load` no lo hacía, lo que significaba que leer un archivo de configuración con la función de nombre más obvio era ejecución remota de código si un atacante podía influir en el archivo. La misma clase de fallo apareció en Ruby, en Java a través de SnakeYAML y en deserializadores de .NET. La lección va más allá de YAML: cualquier formato capaz de describir qué clase instanciar es un formato de código y no de datos, y la entrada no fiable debe pasar por un cargador restringido a escalares simples, secuencias y mapeos. Esta herramienta no construye absolutamente nada: analiza a datos planos y ahí se detiene.

En YAML es donde viven las credenciales, y ese es el argumento para convertir en local

Mira qué se escribe realmente en YAML y el argumento para mantenerlo en tu máquina se construye solo. Es el formato de la infraestructura: pipelines de integración continua, manifiestos y secretos de Kubernetes, valores de Helm, archivos docker-compose, playbooks e inventarios de Ansible, archivos de variables de Terraform, definiciones de servicios. Una configuración de integración continua es, en la mayoría de repositorios, el archivo con mayor densidad de credenciales que hay: nombra el registro, el destino de despliegue y los entornos, y suele referirse a los tokens por los mismos nombres de variable que los desbloquean. Un Secret de Kubernetes va en base64, no cifrado, o sea texto plano con un paso de más. Y la gente recurre a un convertidor justo cuando uno de esos archivos ha fallado y hay que examinarlo, así que el ejemplo del portapapeles es el de verdad y no una muestra censurada. Todo lo de esta página se ejecuta en JavaScript en tu navegador y no emite ninguna petición; abre el panel de red de tus herramientas de desarrollo antes de pegar y verás el contador quedarse quieto.

Errores comunes que conviene evitar

  • Dejar un código de país o una abreviatura sin comillas. Bajo las reglas de YAML 1.1, `NO`, `ON`, `Y` y `N` son literales booleanos: Noruega se vuelve falso y Ontario verdadero.
  • Guardar respuestas en español sin comillas. La palabra `no` se convierte en el booleano falso, mientras que `sí` con tilde sigue siendo texto: dos tipos distintos en la misma columna.
  • Escribir un identificador con cero inicial. `0755` es octal, un teléfono deja de ser esa cadena y algo que empieza por `08` ni siquiera es octal válido.
  • Indentar con un tabulador. Los tabuladores están prohibidos como indentación en todo YAML, y el mensaje de error no te lo dirá porque el carácter es invisible.
  • Cargar YAML no fiable con un cargador permisivo. Las etiquetas pueden nombrar una clase que construir: así leer una configuración se convirtió en ejecución de código en PyYAML y SnakeYAML.

Comparativa

AspectoEsta herramientaConvertidores onlineUna herramienta de línea de comandos
Archivo enviado a un servidorNuncaNormalmente síNo
Avisa de los tipos adivinadosNoRara vez
Informa de los comentarios que se perderánNoNo
Detecta claves duplicadasRara vezVaría
Construye objetos desde etiquetasNuncaVaríaSegún el cargador
PrecioGratisGratis / planes de pagoGratis

Características

Ambas direcciones

De YAML a JSON y de JSON a YAML, con la indentación y el estilo de comillas bajo tu control.

Avisos de coerción de tipos

Cada escalar tipado implícitamente se lista con el valor que YAML leyó y el que probablemente querías.

Detección de claves duplicadas

Una clave repetida sobrescribe en silencio en la mayoría de analizadores; aquí se informa en lugar de aplicarse.

Flujos multidocumento

Los documentos separados por tres guiones se procesan y se asignan a un array JSON en vez de descartarse.

Expansión de anclas y alias

Los nodos compartidos y fusionados se resuelven con su expansión visible, claves de fusión incluidas.

Archivos grandes admitidos

Un manifiesto largo o un archivo de traducción completo se convierte sin subida ni tope de tamaño.

Nada que instalar

Sin herramienta de compilación, sin entorno de ejecución, sin dependencias: funciona en la página web.

Listo para árabe y RTL

Interfaz completa en ocho idiomas, incluido el árabe de derecha a izquierda.

Seguro por defecto

Servido por HTTPS, sin rastreo de contenido ni subida a terceros.

Quién la usa

Ingenieros de plataforma y DevOps

Comprobar qué dice de verdad un manifiesto una vez expandidas las anclas.

Desarrolladores backend

Convertir una carga JSON en un archivo de configuración legible, o al revés.

Equipos de localización

Mover archivos de traducción entre un framework basado en YAML y otro basado en JSON.

Quien depura un pipeline

Encontrar el valor sin comillas que un analizador leyó como booleano.

Preguntas Frecuentes

No. Todo se ejecuta localmente en tu navegador — tu texto nunca se sube, guarda ni comparte.

Sí — totalmente gratis, sin cuenta y sin límites.