IA en tu dispositivo: profesional y privado.

Conversor YAML a JSON

YAML a JSON con manifiestos, claves de fusión y anclas

  • No se sube nada
  • Varios documentos
  • Claves de fusión resueltas
  • Errores con línea y columna

Suelta un archivo .yaml o .yml

O pega en el editor de abajo. Hasta 25.0 MB en el plan gratuito.

Ejemplos:

Origen YAML

Salida JSON

Salida
Sangría
Sangría

Cómo se espacia el JSON. Minificado es una línea sin espacios.

Documentos
Documentos

Qué hacer con un archivo que contiene varios documentos separados por ---.

Ordena las claves por punto de código para que dos conversiones de los mismos datos se comparen limpiamente.

Claves duplicadas
Claves duplicadas

JSON no puede guardar los dos valores. Cambiarlo vuelve a leer el documento.

NaN e Infinity
NaN e Infinity

JSON no tiene literal para ninguno. Elige qué ocurre con .nan, .inf y -.inf.

Marcas de tiempo
Marcas de tiempo

Las fechas se quedan tal cual salvo que pidas ISO 8601.

Pro

Pro. Todos los documentos de todos los archivos en cola, en un único array JSON.

Gratis convierte un archivo de hasta 25.0 MB. Todas las opciones de salida están incluidas.

Cómo convertir YAML a JSON

  1. 1

    Pega o suelta tu YAML

    Pega en el editor, arrastra un archivo .yaml o .yml a la zona de carga, o abre uno de los tres ejemplos. La conversión ocurre mientras escribes: no hay que pulsar nada para ver el resultado.

  2. 2

    Elige la forma de salida

    2 espacios, 4 espacios, tabulaciones o minificado. Si el archivo contiene varios documentos separados por ---, decide si se convierten en un array JSON, solo el primero, o un archivo cada uno. Activa Ordenar claves cuando la salida vaya a compararse.

  3. 3

    Revisa qué cambió la conversión

    El panel bajo el resultado nombra todo lo que JSON no puede llevar igual: valores como .nan y .inf, datos binarios escritos como base64, y etiquetas como !Ref resueltas al valor de debajo. Nada cambia en silencio.

  4. 4

    Convierte, después descarga o copia

    Pulsa Convertir para generar los archivos, y después descarga el .json, cópialo al portapapeles, o llévate un lote entero como un solo ZIP. Si el YAML no se puede leer, el error indica la línea, la columna y el texto alrededor.

Qué ofrece este conversor de YAML a JSON

Pega YAML, suelta un archivo .yaml o .yml, o carga un ejemplo, y el JSON aparece mientras escribes. Los manifiestos de varios documentos, las claves de fusión, las anclas y las etiquetas poco habituales se procesan en vez de rechazarse, y todo lo que la conversión tuvo que cambiar se cuenta bajo el resultado en lugar de ocurrir en silencio. Elige 2 espacios, 4 espacios, tabulaciones o minificado, ordena las claves cuando el archivo vaya a compararse, y descarga el .json o cópialo.

  • YAML 1.2 core — Mapas, secuencias, estilos de bloque y de flujo, escalares multilínea, anclas, alias y claves de fusión. Las reglas de escalares son las del esquema core 1.2, así que yes y no siguen siendo texto.
  • Consciente de varios documentos — Un manifiesto separado por --- se convierte en un array JSON, en su primer documento, o en un archivo por documento. La versión anterior de esta herramienta rechazaba esos archivos.
  • Cuatro formas de salida — 2 espacios, 4 espacios, tabulaciones reales, o minificado en una línea. Ordenar claves deja cada objeto en un orden estable para que dos conversiones de los mismos datos se comparen limpiamente.
  • Errores con posición — El mensaje, la línea, la columna y tres líneas de tu propio origen con un cursor bajo el fallo, no un número extraído de una frase.
  • Nada cambia en silencio — Los números no finitos, los datos binarios y las etiquetas resueltas se cuentan y se nombran bajo el resultado, porque cada uno es un valor que JSON no puede llevar igual.
  • Lotes y ZIP — Encola hasta 50 archivos con Pro, llévatelos como un solo archivo comprimido, o pliega todos los documentos de todos los archivos en un único array JSON.

YAML de varios documentos y manifiestos de Kubernetes

Un archivo YAML puede contener varios documentos separados por tres guiones en su propia línea. Es la forma normal de un manifiesto de Kubernetes — un Namespace, un Deployment y un Service en un archivo — y también es como escriben su salida kubectl, kustomize y helm template. JSON no tiene un separador equivalente, así que un conversor tiene que decidir algo, y rechazar el archivo es la decisión que toman casi todos.

  • Automático — Un documento se convierte en un objeto; varios, en un array de objetos. Es lo que la gente espera y es el valor predeterminado.
  • Siempre array — Siempre un array, incluso con un solo documento. Úsalo cuando lo que lea el JSON itere sin comprobar y un objeto suelto lo rompa.
  • Solo el primer documento — Toma el documento inicial y descarta el resto. Útil cuando a un archivo se le ha concatenado algo y solo necesitas la cabeza.
  • Archivos separados — Un .json por documento, numerado con ceros a la izquierda para que un listado de carpeta ordene igual que el original. Ninguno de los competidores de esta página lo ofrece.
  • Los documentos vacíos cuentan — Una serie de --- sin nada entre las marcas es una serie de documentos null, y se conservan en vez de descartarse, porque sus posiciones significan algo en un parche.

Anclas, alias y claves de fusión

YAML permite nombrar un nodo con &ancla y referirse a él después con *alias, y permite que un mapa absorba otro con la clave de fusión <<. Entre los dos son la forma en que los archivos docker-compose, las canalizaciones de GitLab CI y los valores de Helm evitan repetirse. JSON no tiene nada de esto, así que cada referencia debe expandirse en su sitio, y cómo trate un conversor la clave de fusión es la diferencia entre un resultado correcto y uno plausible pero equivocado.

  • Los alias se expanden — Cada nodo referenciado se escribe allí donde se usa. Dos alias a la misma ancla producen dos subárboles idénticos en el JSON, porque JSON no puede expresar que eran el mismo nodo.
  • Las claves de fusión se resuelven — Un servicio escrito como <<: *common sale con las claves compartidas incorporadas. Un parser que siga YAML 1.2 al pie de la letra deja en su lugar una clave literal "<<" con un objeto anidado: JSON válido, datos incorrectos, y ningún error.
  • Ganan las claves posteriores — Las claves escritas directamente en el mapa sobrescriben las que fusionó, que es el comportamiento del que dependen docker-compose y GitLab CI.
  • La expansión está acotada — Las anclas pueden anidarse de forma que un archivo diminuto se expanda a gigabytes. La expansión posible se mide antes de analizar nada, y un archivo que pueda superar el presupuesto se rechaza en milisegundos en vez de congelar la página.

Cómo se convierten los tipos de YAML a JSON

Las reglas de escalares son las del esquema core de YAML 1.2, y difieren de YAML 1.1 justo donde se decide si un valor llega como texto o como número. Equivocarse aquí no es una diferencia de formato: cambia los datos.

  • Los booleanos son solo true y false — yes, no, on, off, y y n siguen siendo texto. Con YAML 1.1 pasarían a booleanos, que es la razón por la que el código de país NO de Noruega ha roto tantas canalizaciones.
  • Los números son decimales, octales y hexadecimales — 42, 0o14 y 0x1F son números. 1_000 es texto, porque los separadores con guion bajo son de 1.1; 0b1010 también, por lo mismo.
  • Las marcas de tiempo se quedan como se escribieron — 2001-12-14 es la cadena que tecleaste, no una fecha desplazada a la zona horaria de tu máquina. Cambia el ajuste a ISO 8601 si quieres normalizarlas, y el recuento de lo que cambió aparece bajo el resultado.
  • Los escalares de bloque conservan sus saltos — Un bloque | conserva cada salto de línea; un bloque > los pliega en espacios. Ambos llegan como cadenas JSON normales con los espacios que describía el YAML.
  • Las etiquetas se resuelven al valor de debajo — !Ref, !GetAtt, !Sub y cualquier otra etiqueta poco habitual te dan el escalar, la secuencia o el mapa al que estaban asociadas, y los nombres de etiqueta se listan bajo el resultado.

Valores que JSON no puede representar

Parte del YAML no tiene equivalente en JSON. Todo conversor tiene que hacer algo al respecto, y casi todos lo hacen sin decírtelo. Aquí la regla es que nada cambia en silencio: cada uno de estos casos se cuenta, se nombra, y donde hay una elección real es tuya.

  • .nan, .inf y -.inf — JSON no tiene literal para ninguno. Por defecto se escribe null y se cuenta cuántos se convirtieron; también pueden escribirse como texto, o puede detenerse la conversión para que decidas en el origen.
  • Datos binarios — Un nodo !!binary se convierte en una cadena base64: el mismo texto que había en el YAML, así que no se pierde nada, pero ahora es una cadena y no bytes.
  • Claves compuestas — Un mapa o una secuencia usados como clave no tienen equivalente en JSON, así que se representan como texto. La clave se conserva en lugar de convertirse en algo como [object Object], que es lo que produce una conversión ingenua.
  • Alias circulares — Un ancla que se refiere a sí misma es YAML legal y JSON imposible. Se informa como alias circular con la ruta al nodo, en vez de fallar dentro de un serializador.
  • Comentarios — Los comentarios de YAML no son datos y ningún documento JSON puede guardarlos. Se descartan, como en cualquier conversor: conviene saberlo si los comentarios llevaban la documentación de una configuración.

Claves duplicadas y otras pérdidas silenciosas

Los fallos contra los que vale la pena protegerse no son los que dan error. Son los que producen un documento ordenado, plausible e incorrecto. Una clave duplicada es el ejemplo más claro: YAML te permite escribirla, JSON no puede guardar los dos valores, y por tanto uno desaparece en la conversión.

  • Rechazar, por defecto — La conversión se detiene y nombra la línea y la columna de la segunda clave. Es el valor predeterminado seguro, porque la alternativa es un archivo que parece convertido y al que le falta un valor.
  • O conservar la última — Cambia el ajuste y la conversión termina con «gana la última», que es lo que hace la mayoría de herramientas YAML. La diferencia es que lo elegiste tú.
  • El reverso es un tabulador — YAML prohíbe los tabuladores como sangría. Un archivo perfectamente alineado en un editor con tabulación de dos espacios no se analizará, y el error nombra la línea.
  • Ordena las claves antes de comparar — Dos exportaciones de los mismos datos pueden diferir solo en el orden de las claves. Ordenar hace que la comparación muestre los cambios y no la ordenación.

Un manifiesto de 25 MB se convierte en poco más de un segundo en la máquina de referencia, y todo el proceso ocurre en tu dispositivo.

Opciones de salida de un vistazo

  • Sangría — 2 espacios, 4 espacios, tabulaciones reales, o minificado en una línea. Las cuatro son gratis: en una sangría no hay eje de calidad.
  • Documentos — Automático, siempre array, solo el primer documento, o un archivo por documento.
  • Ordenar claves — Ordena las claves de cada objeto por punto de código, igual en todos los idiomas, para que la salida no dependa del idioma del navegador.
  • Claves duplicadas — Rechazar e informar, o conservar la última. Este ajuste va al parser, así que cambiarlo vuelve a leer el documento.
  • Números no finitos — null, texto, o detener la conversión.
  • Marcas de tiempo — Dejarlas exactamente como se escribieron, o normalizarlas a ISO 8601.
  • Combinar (Pro) — Todos los documentos de todos los archivos en cola, plegados en un array JSON según el orden de la cola.

¿Por qué convertir YAML a JSON?

YAML lo escriben personas y JSON lo leen programas. La conversión es lo que permite que una configuración cómoda de editar llegue a un sistema que solo acepta JSON, y es la forma más rápida de averiguar qué dice realmente un archivo cuando la sangría deja de ser evidente.

  • Las APIs aceptan JSON — Convierte una configuración YAML en un cuerpo de petición, un fixture, o un bloque de ajustes para un servicio que no tiene parser de YAML.
  • Depurar la sangría — Cuando un manifiesto no se comporta, convertirlo te muestra la estructura que vio el parser, que a menudo no es la que sugería la sangría.
  • Comparar dos configuraciones — Convierte ambas, ordena las claves y compara el JSON. El orden y los cambios de comentarios dejan de aparecer como diferencias.
  • Alimentar una cadena JSON — jq, los validadores de JSON Schema y todas las herramientas JSON de este sitio funcionan con el resultado.
  • Nada sale de tu dispositivo — Los manifiestos contienen nombres de host, registros de imágenes y de vez en cuando un secreto. La conversión ocurre en la página, así que nada de eso se sube a ninguna parte.

Preguntas frecuentes

¿Cómo funciona el conversor de YAML a JSON?

Pega tu YAML o suelta un archivo .yaml o .yml y el JSON aparece mientras escribes. Elige 2 espacios, 4 espacios, tabulaciones o salida minificada, decide cómo se agrupan los archivos de varios documentos, y pulsa Convertir para generar el archivo descargable. Todo ocurre en tu dispositivo: el documento nunca se sube, y el conversor sigue funcionando sin conexión una vez cargada la página.

¿Admite manifiestos de Kubernetes con varios documentos?

Sí, y es la razón por la que llega la mayoría. Un archivo cuyos documentos están separados por --- en su propia línea se lee como un flujo. Tú decides qué pasa después: Automático da un objeto para un archivo de un documento y un array JSON para un manifiesto, Siempre array envuelve siempre, Solo el primero toma únicamente el documento inicial, y Archivos separados escribe un .json por documento con nombre numerado. Muchos conversores simplemente rechazan estos archivos con un error de análisis.

¿Se admiten anclas, alias y claves de fusión?

Los tres. Las anclas y los alias se expanden en su sitio, porque JSON no tiene sintaxis de referencias: cada nodo referenciado se escribe allí donde se usa. Las claves de fusión también se resuelven, así que un servicio de docker-compose escrito como <<: *common sale con las claves compartidas incorporadas, y no con una clave literal "<<" que contiene un objeto anidado. Ese resultado literal es una respuesta silenciosamente incorrecta, y es lo que produce un parser estricto de YAML 1.2 salvo que la fusión se active explícitamente.

¿Qué ocurre con .nan, .inf y otros valores que JSON no representa?

Lo eliges tú, y el conversor te dice cuántos encontró. JSON no tiene forma de escribir NaN ni Infinity, así que la mayoría de herramientas emiten null en silencio. Aquí lo predeterminado sigue siendo null, pero el panel bajo el resultado los cuenta; también puedes escribirlos como las cadenas "NaN", "Infinity" y "-Infinity", o detener la conversión para arreglarlo en el origen.

¿Cómo se convierten los tipos de YAML a JSON?

Los mapas pasan a objetos y las secuencias a arrays. Los escalares siguen el esquema core de YAML 1.2: true y false son booleanos, ~ y null son null, los enteros y decimales simples son números, y todo lo demás es texto. Eso significa que yes, no, on y off siguen siendo cadenas, y que 1_000 sigue siendo una cadena porque los separadores con guion bajo pertenecen a YAML 1.1. Los escalares de bloque multilínea conservan sus saltos de línea exactamente.

¿Qué hace el conversor con las claves duplicadas?

Por defecto rechaza el archivo y muestra la línea y la columna de la segunda clave, porque una clave duplicada es pérdida de datos: JSON no puede guardar los dos valores, así que uno desaparece. Si prefieres convertir igualmente, cambia el ajuste a Conservar la última, que es lo que hace la mayoría de herramientas YAML. En ambos casos se te avisa de que el duplicado existe, y esa es la parte que otros conversores omiten.

¿Funciona con CloudFormation, Helm u otro YAML con etiquetas?

Las plantillas de CloudFormation se convierten. Etiquetas como !Ref, !GetAtt y !Sub se resuelven al escalar, secuencia o mapa que llevan debajo, y los nombres de etiqueta usados se listan bajo el resultado para que nada se pierda calladamente. Los conversores construidos con los valores por defecto habituales lanzan un error de etiqueta desconocida con las tres. Las plantillas de Helm con marcadores {{ }} no son YAML válido hasta renderizarlas, así que ejecuta antes helm template.

¿Qué pasa si mi YAML no es válido?

Obtienes el mensaje del parser, la línea, la columna y tres líneas de tu propio origen con un cursor bajo la posición exacta, no un número de línea extraído de un texto de error. Las causas habituales son un tabulador usado como sangría, una secuencia de flujo sin cerrar, unas comillas sin cerrar y un alias cuya ancla nunca se definió; cada una da su propio mensaje. También se ofrece un enlace a la herramienta JSON a YAML por si tenías la conversión al revés.

¿Qué tamaño de archivo admite?

Gratis convierte archivos de hasta 25 MB, de uno en uno. En la máquina de referencia un manifiesto de 25 MB se analiza y se serializa en poco más de un segundo, totalmente fuera del hilo de la interfaz, así que la página sigue respondiendo mientras trabaja. Pro eleva el límite a lo que tu dispositivo aguante, encola hasta 50 archivos, descarga un lote como un solo ZIP y puede plegar todos los documentos de todos los archivos en un único array JSON.

¿Es seguro pegar un YAML con miles de anclas?

Sí. Un YAML corto puede escribirse de forma que sus anclas se expandan a gigabytes: nueve anclas de nueve alias cada una son 324 bytes que crecen hasta unos 387 millones de nodos. Este conversor mide la expansión posible antes de analizar nada y rechaza el archivo en un par de milisegundos. Las herramientas que pasan el texto directamente a un parser bloquean la pestaña varios segundos y después fallan.

4.8de 5

de 76 valoraciones

Valora esta herramienta

Toca una estrella — es un segundo