Conversor de YAML
Convierte YAML a JSON, TOML, XML, literales de objeto JavaScript o arrays PHP. Los documentos múltiples separados con --- se combinan automáticamente en un array, mientras que anchors, aliases y merge keys (<<: *base) se expanden por defecto a su estructura real. Cubre manifiestos Kubernetes, Helm Chart, Docker Compose, GitHub Actions, GitLab CI, OpenAPI, AsyncAPI, Ansible playbook, CloudFormation y otros usos frecuentes de YAML, además de detectar trampas reales de tipos: el problema Norway, versiones recortadas como números flotantes, pérdida de precisión en enteros grandes, indentación con tabuladores e implicit null. Los errores incluyen línea, columna y contexto. Todo el análisis, la conversión y la copia ocurren en la pestaña actual del navegador; el YAML no se sube a ningún servidor ni pasa por servicios de terceros.
- Una sola entrada admite 5 formatos de salida: JSON, TOML, XML, objeto JavaScript y array PHP, cada uno con opciones propias
- YAML con varios documentos, separado por ---, se organiza como array JSON en el orden original para revisar de una vez manifiestos Kubernetes y resultados de Helm
- Anchors, aliases y merge keys se expanden por defecto como estructuras completas para que JSON, TOML y XML posteriores no reciban referencias colgantes
- Detección inteligente de trampas compatibles con YAML 1.1: problema Norway, yes/no/on/off como booleanos, versiones como flotantes, enteros grandes fuera de Number.MAX_SAFE_INTEGER, tabuladores como indentación
- Procesamiento local completo, sin subida ni telemetría, apto para configuraciones sensibles, manifiestos de producción y datos de ejemplo con secretos
Resumen
Una herramienta enfocada en trabajos que empiezan con YAML. La unión de documentos múltiples, la expansión de anchors y merge keys, la detección de trampas de tipos y los avisos de compatibilidad del motor se resuelven durante el análisis, para que la salida pueda pasar a CI, plantillas de configuración, validadores JSON Schema o generadores de código sin otra limpieza manual.
- 01
Cinco formatos de destino listos
Convierte YAML a JSON, TOML, XML, literal de objeto JavaScript y array PHP. JSON permite ajustar indentación y ordenar claves alfabéticamente; TOML exige una raíz de objeto y evita salidas incompletas; XML permite configurar nombre de raíz, nombre de ítem, declaración y pretty print; el objeto JS conserva claves entre comillas y escapes; PHP genera un archivo completo con <?php return [...];.
- 02
YAML multidocumento combinado automáticamente
Cuando un archivo separa varios documentos con --- (manifiestos Kubernetes, resultados de helm template, salida de kustomize build o Ansible playbook), la herramienta los organiza en un array JSON siguiendo el orden original. También puedes limitar la salida al primer documento para tratar por separado Deployment, Service, Ingress y otros recursos.
- 03
Expansión de anchors, aliases y merge keys
&base, *base y <<: *base se resuelven durante el análisis como estructuras reales, de modo que JSON, TOML, XML, objetos JS y arrays PHP no vuelvan a ver aliases colgantes ni campos merge perdidos. Si necesitas inspeccionar la forma original de las referencias, puedes desactivar la expansión.
- 04
Avisos de tipos y compatibilidad de versiones
Detecta el problema Norway (country: no interpretado como booleano), versiones recortadas como flotantes (1.10 pasa a 1.1), enteros mayores que Number.MAX_SAFE_INTEGER, tabuladores usados como indentación, null implícito y prefijos octales ambiguos, e indica si la diferencia viene de YAML 1.1 o 1.2.
- 05
Errores con línea, columna y contexto
Si el análisis falla, el error incluye línea exacta, columna, fragmento cercano y la pista del parser, para volver al archivo original sin contar indentación a ojo.
- 06
Funciona por completo en el navegador
Análisis, conversión, comprobaciones y copia ocurren en esta página. Tu YAML no sale mediante solicitudes a servidores, CDN ni plataformas de analítica de terceros, así que puedes pegar manifiestos de producción, datos de ejemplo con secretos o borradores de migración a Cargo.toml.
Cómo usarla
El flujo se reduce a cuatro pasos: pegar YAML, elegir formato, leer las comprobaciones y copiar el resultado.
- 01
Pega el texto YAML en el panel de entrada izquierdo. La herramienta analiza al instante y muestra en el panel de comprobaciones el número de documentos, la lista de anchors, avisos de indentación y otros datos de estructura.
- 02
Cambia el formato de destino en la parte inferior: JSON, TOML, XML, objeto JavaScript o array PHP. Cada formato tiene su propio panel de opciones para ajustar indentación, orden de claves, expansión de anchors, raíz XML y más.
- 03
Revisa los avisos del panel, sobre todo el problema Norway, versiones recortadas, enteros grandes e indentación con tabuladores. Estos avisos no bloquean la conversión, pero señalan dónde conviene añadir comillas o corregir el YAML.
- 04
Para manifiestos largos o descripciones OpenAPI grandes, cambia al modo pantalla completa desde la esquina superior derecha. Los paneles de entrada y salida ganan espacio sin perder resaltado, plegado ni controles de copia.
- 05
Cuando esté listo, copia el resultado y pégalo en tu IDE, gestor de snippets, definición de tarea CI o cliente API como Postman, Insomnia o Bruno.
Detalles
Los detalles que se repiten al trabajar con YAML quedan cubiertos por defecto, sin encadenar herramientas externas para lograr una conversión limpia.
- El análisis sigue YAML 1.2 por defecto y además marca riesgos de YAML 1.1, para evitar divergencias silenciosas con PyYAML, Symfony YAML u otros runtimes heredados.
- La salida JSON conserva el orden original de las claves de YAML y permite ordenar alfabéticamente cuando necesitas diffs de git, code review o validación JSON Schema más estables.
- La conversión a TOML exige que la raíz sea una tabla; si la raíz es array, cadena o número, muestra un error claro en lugar de producir un TOML parcial e inválido.
- La conversión a XML permite personalizar raíz, nombre de ítem, declaración y pretty print, para alinearse con schemas SOAP, RSS, SAML o Atom ya existentes.
- Los objetos JavaScript y arrays PHP conservan anidamiento, escapes, valores null y booleanos literales, listos para pegar en datos de prueba, Storybook stories, configuración Laravel o ejemplos WordPress.
- El YAML multidocumento puede salir como un array completo o limitarse al primer documento, útil para tratar por separado recursos Kubernetes como Deployment, Service e Ingress.
- El resumen de estructura muestra nombres de anchors, cantidad de documentos y profundidad de anidamiento, para entender rápido un YAML desconocido.
- Todo se ejecuta en el worker del navegador, sin backend SaaS, por lo que la herramienta sigue funcionando en un vuelo, en redes solo por VPN o detrás de un proxy corporativo.
Casos de uso
Cuando el punto de partida es YAML, estas tareas habituales evitan una ronda de copia manual o explicación con capturas.
-
Revisar manifiestos Kubernetes y salida de kustomize
Pega un paquete multidocumento con Deployment, Service, Ingress, ConfigMap y Secret, obtén todo como array JSON y pásalo a json-diff para comparar preproducción y producción sin salir del navegador.
-
Inspeccionar Helm Chart y ordenar values
La salida de helm template incluye varios documentos y referencias por anchors. Convertirla a JSON muestra la forma final de cada recurso y deja ver dónde las capas de values.yaml se pisan entre sí.
-
Revisar GitHub Actions, GitLab CI y CircleCI
Convierte archivos workflow a JSON y usa una comparación estructurada para entender cómo terminan expandiéndose matrix, env, condiciones y workflows reutilizables, y por qué un job se ejecutó o no.
-
Cambiar entre OpenAPI, AsyncAPI y JSON Schema
El equipo puede escribir especificaciones en YAML, pero Stoplight, Swagger Codegen, Prism mock o validadores AJV a veces solo aceptan JSON. Una conversión evita mantener dos fuentes y reduce errores de sincronización manual.
-
Sincronizar datos de prueba y mocks de frontend y backend
Muchos backends escriben datos de prueba en YAML, como Rails, Symfony o Laravel. Cuando Jest, Vitest o Storybook necesitan JSON u objetos JS, basta con convertir y pegar sin escribir un script propio.
-
Migrar proyectos a TOML con Cargo, pyproject o Hugo
Para pasar configuraciones YAML a Cargo.toml, pyproject.toml o Hugo config.toml, revisa primero la salida YAML a TOML y luego ajusta a mano. La estructura ayuda a evitar errores de transcripción línea por línea.
-
Leer Ansible playbook y plantillas CloudFormation
Los archivos vars de Ansible y las plantillas SAM de CloudFormation pueden anidar anchors y funciones intrínsecas con mucha profundidad. Al convertir a JSON, la jerarquía queda más clara para revisión y formación del equipo.
-
Auditoría de seguridad y comparación de línea base
Revisa cadenas de anchors, profundidad de anidamiento, tipos implícitos y literales sensibles sin comillas para confirmar que el comportamiento implícito de YAML no cambia booleanos en producción. Combínalo con una herramienta de diff JSON para comparar contra una línea base confiable.
Ver también
Si la fuente que tienes es JSON, por ejemplo una respuesta API minificada, un dump JSON de Helm values, la vista JSON de un Terraform plan o la salida de kubectl get -o json, y necesitas recorrer el camino inverso hacia YAML, TOML, XML, CSV, literales de objeto JavaScript o arrays PHP, abre Conversor de JSON . Cada formato de destino incluye opciones propias, como indentación y orden de claves en YAML, raíz XML y modo de atributos, delimitador y encabezado CSV, orden de claves TOML o wrapper return de PHP en la raíz, para generar texto listo para la siguiente herramienta. Si antes de convertir necesitas ordenar el JSON, plegar nodos profundos, encontrar un error de sintaxis o revisar estadísticas de claves, pásalo primero por Formateador de JSON , que admite plegado jerárquico, resaltado de línea con error, búsqueda de claves, estadísticas de profundidad, formateo y compactación dentro del navegador, con la misma garantía de no subir datos. Cuando quieras saber exactamente qué campos cambiaron entre dos revisiones YAML, por ejemplo manifiestos Kubernetes de preproducción y producción, workflows de GitHub Actions en distintos entornos o dos releases de Helm, pega ambas salidas JSON en Diferencias de JSON para ver cada alta, eliminación y modificación por JSON Path en una vista lado a lado estilo git, más eficaz que una revisión manual para detectar sobrescrituras accidentales, conversiones implícitas de tipos o efectos de indentación.
Buenas prácticas
La legibilidad de YAML es un arma de doble filo: la indentación y los literales sin comillas reducen la barrera de entrada, pero también provocan sorpresas en los bordes. Estos hábitos funcionan en casi cualquier proyecto YAML.
- Pon comillas en literales sensibles como yes, no, on, off, true, false y null para que motores compatibles con YAML 1.1 no los conviertan silenciosamente en booleanos o valores nulos.
- Pon siempre comillas en versiones, números de serie, cadenas con aspecto de teléfono, IDs de pedido, hashes de commit e ISBN para evitar que se interpreten como flotantes, octales o enteros grandes.
- Usa solo espacios para indentar, de forma consistente con 2 o 4 espacios. No mezcles tabuladores y espacios, y configura el editor para mostrar espacios en blanco.
- Reutiliza estructuras con anchors y aliases en lugar de copiar bloques manualmente; merge key (<<: *base) permite mantener campos comunes en un solo sitio.
- Después de convertir YAML a JSON, compara el resultado con la versión anterior mediante json-diff para detectar cambios silenciosos en campos; también puedes añadir este paso a CI como protección contra regresiones.
- Tras convertir YAML multidocumento, confirma que el orden del array coincide con el archivo original, especialmente en cadenas sensibles al orden como namespaces, CRD y Operators de Kubernetes.
- Antes de enviar un manifiesto de producción, pásalo por esta herramienta para confirmar que anchor, merge e include no introducen sobrescrituras inesperadas.
- binary, timestamp y custom tag de YAML pueden perder semántica al convertirse a JSON o TOML. Cuando sea necesario, usa literales de cadena y documenta el tipo esperado.
Limitaciones
Saber qué no hace esta herramienta evita usarla como IDE completo de YAML, validador de schemas o pipeline GitOps.
- No valida schemas de negocio, como objetos de Kubernetes API, restricciones de campos OpenAPI, JSON Schema o reglas concretas de Cargo manifest; que la sintaxis pase no significa que la semántica sea correcta.
- No conserva comentarios de YAML. Las salidas JSON, TOML y XML no incluyen el contenido posterior a #; si un comentario debe sobrevivir, conviértelo en un campo o documentación externa.
- No reescribe automáticamente el archivo YAML fuente. Toda corrección debe hacerse en el documento original para mantener el control de versiones como única fuente de verdad.
- Los archivos muy grandes, de cientos de miles de líneas o varios MB, pueden ralentizar el navegador, aunque el procesamiento sigue siendo local y nada se corta ni se sube. Prueba las opciones con un fragmento representativo antes de usar el documento completo.
- No ejecuta tipos tag de YAML como !!python/object o !!js/function; se ignoran o rechazan para evitar vulnerabilidades de deserialización.
- No ofrece control de versiones, colaboración, comentarios ni integración Git. Está pensada para conversión e inspección puntuales; para revisión y aprobación, combínala con tu flujo Git.
- Al convertir YAML a XML o CSV pueden aparecer límites estructurales difíciles de mapear, como arrays raíz o listas con tipos mezclados. La herramienta muestra el conflicto en vez de producir una salida engañosa.
Preguntas frecuentes
Las dudas frecuentes se concentran en documentos múltiples, anchors y merge keys, trampas de tipos y si los datos salen del navegador.
¿Qué pasa si un YAML contiene varios documentos?
La herramienta reconoce automáticamente los documentos separados con --- y los combina como array JSON en el orden original, útil para manifiestos Kubernetes, resultados de Helm y Ansible playbook con varios recursos. También puedes desactivar este comportamiento en las opciones y emitir solo el primer documento.
¿Se conservan anchors, aliases y merge keys?
Por defecto se expanden a la estructura real. JSON, TOML, XML, objetos JavaScript y arrays PHP no admiten referencias, así que expandirlas es la opción más segura y evita que herramientas posteriores vean aliases colgantes o campos merge ausentes. Si solo quieres inspeccionar el grafo de referencias original, desactiva la expansión.
¿Por qué country: no se convierte en false al pasar a JSON?
Es el conocido problema Norway. YAML 1.1 trata yes, no, on y off como booleanos, así que el código ISO de Noruega NO se vuelve false si no lleva comillas. La herramienta usa YAML 1.2 por defecto, pero sigue marcando este riesgo para evitar diferencias con runtimes compatibles con YAML 1.1 como PyYAML o Symfony YAML. La forma más segura es poner comillas.
¿Por qué una versión como 1.10 termina como 1.1?
El valor 1.10 sin comillas se analiza como flotante 1.1, porque se elimina el cero final. Conviene poner comillas en versiones, teléfonos, números de serie, ISBN y hashes de commit, es decir, valores que parecen numéricos pero son cadenas. El panel de comprobaciones resalta estos casos.
¿Por qué TOML dice que la raíz debe ser un objeto?
TOML exige una tabla en el nivel superior; no admite arrays, cadenas, números ni null como raíz. Si tu YAML empieza con una lista, por ejemplo [a, b, c], envuélvela con una clave como items: [a, b, c] antes de convertir. Así la lista tiene un nombre semántico y cumple con TOML.
¿Por qué los enteros grandes pierden precisión?
El tipo Number de JavaScript tiene como límite 2^53 - 1. IDs Snowflake, UUID en forma entera y timestamps ampliados a milisegundos pueden superar ese rango y convertirse en aproximaciones al salir como JSON. El panel de comprobaciones avisa; la solución fiable es escribir esos campos como cadenas en YAML.
¿Los datos pegados se suben?
No. El análisis, la conversión, las comprobaciones y la copia ocurren dentro del navegador. Ninguna solicitud lleva tu YAML a un servidor, CDN o plataforma de analítica. Al cerrar la pestaña no queda nada, por lo que puedes trabajar con manifiestos de producción, datos de ejemplo con secretos y borradores de migración.
¿Se puede usar sin conexión?
Después de la primera carga, el navegador ya tiene todos los recursos necesarios para analizar y convertir. La herramienta sigue funcionando sin red, algo útil en un vuelo, detrás de un proxy corporativo estricto o en una red aislada.
Herramientas relacionadas
Continúa con el trabajo de datos: convertir JSON de vuelta a YAML, ordenar una estructura JSON, localizar errores de sintaxis anidados o comparar dos salidas en paralelo. Estas herramientas forman un flujo completo.