Formatea, valida YAML y convierte entre YAML y JSON.
Entrada
Salida
Publicidad
Acerca de Esta Herramienta
YAML (YAML Ain't Markup Language) fue creado originalmente por Clark Evans en 2001, con contribuciones de Ingy döt Net y Oren Ben-Kiki. El nombre fue inicialmente un acrónimo lúdico de "Yet Another Markup Language", pero luego se renombró como acrónimo recursivo para enfatizar que YAML es fundamentalmente un formato de serialización de datos, no un lenguaje de marcado de documentos.
La primera especificación oficial, [YAML 1.0](https://yaml.org/spec/1.0/), se publicó en enero de 2004, con la actual [especificación YAML 1.2](https://yaml.org/spec/1.2.2/) lanzada en 2009.
YAML fue diseñado con la legibilidad humana como objetivo principal. Usa estructura basada en indentación (solo espacios, nunca tabulaciones) y puntuación mínima, haciéndolo visualmente más limpio que JSON o XML para archivos de configuración. YAML soporta tipos de datos ricos incluyendo escalares, secuencias, mapeos, cadenas multilínea (bloque literal con | y bloque plegado con >), anclas y alias para reutilización de datos, e incluso claves complejas.
Es un superconjunto estricto de JSON, lo que significa que cualquier documento JSON válido también es YAML válido. La filosofía de diseño de YAML se inspira en lenguajes como Python y en convenciones de formato de correo electrónico (RFC 2822).
YAML se ha convertido en el estándar de facto para configuración en herramientas modernas de DevOps y cloud-native. Los manifiestos de [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/), archivos Docker Compose, playbooks de Ansible, flujos de trabajo de GitHub Actions, definiciones de GitLab CI y plantillas de Helm charts todos usan YAML extensivamente.
Plataformas de Infraestructura como Código como Terraform y CloudFormation también dependen de YAML. Este formateador usa la biblioteca [js-yaml](https://github.com/nodeca/js-yaml), la implementación JavaScript más adoptada del parser YAML 1.2. Soporta formateo con indentación personalizable, validación de sintaxis con informes detallados de errores y conversión bidireccional entre YAML y JSON. Todo el procesamiento ocurre completamente en su navegador — sus datos nunca salen de su dispositivo.
Pegue su código YAML o JSON en el área de entrada.
Haz clic en Formatear para embellecer, Validar para verificar sintaxis, o usa los botones de conversión.
Copia la salida formateada o usa la conversión YAML↔JSON según sea necesario.
La Evolución de YAML
YAML comenzó en 2001 como un esfuerzo liderado por Clark Evans, junto con Ingy döt Net y Oren Ben-Kiki, para crear una alternativa amigable para humanos a XML en la serialización de datos y configuración. En ese momento, XML era el formato dominante para datos estructurados, pero su sintaxis verbosa con etiquetas de cierre, comillas de atributos y declaraciones de espacios de nombres lo hacían poco manejable para archivos de configuración que los desarrolladores editaban a mano diariamente. La estructura basada en indentación de YAML, inspirada en Python y convenciones de formato de correo electrónico, ofrecía un enfoque radicalmente más limpio.
El formato ganó su primera gran ola de adopción a través del framework Ruby on Rails en 2004-2005, que usaba database.yml para la configuración de bases de datos y fixtures.yml para datos de prueba. Esto introdujo a toda una generación de desarrolladores web a YAML como su formato de configuración predeterminado. La especificación YAML evoluciónó a través de varias versiones: YAML 1.0 en 2004 formalizó el lenguaje, YAML 1.1 en 2005 añadió características como claves de fusión y resolución mejorada de tipos, y YAML 1.2 en 2009 alineó la especificación más estrechamente con JSON, haciendo que todo documento JSON válido fuera también YAML válido.
El auge de DevOps y la infraestructura cloud-native desde 2013 en adelante transformó YAML de una conveniencia popular en un estándar de la industria. Kubernetes adoptó YAML para todos los manifiestos de recursos, Docker Compose lo usó para definiciones multi-contenedor, y plataformas CI/CD como GitHub Actions, GitLab CI y CircleCI eligieron YAML para la configuración de pipelines. Los playbooks de Ansible, charts de Helm y plantillas de CloudFormation consolidaron aún más su dominio en infraestructura como código.
La historia de YAML no está exenta de controversia. El infame "problema de Noruega" — donde el código de país NO se interpreta silenciosamente como el booleano false en YAML 1.1 — destacó los peligros de la coerción implícita de tipos. De manera similar, valores como "on", "off", "yes" y números de versión como 1.0 siendo interpretados como booleanos o flotantes han causado innumerables errores sutiles. La especificación YAML 1.2 abordó muchos de estos problemas endureciendo las reglas de resolución de tipos, pero los parsers heredados que aún usan comportamiento 1.1 siguen siendo una fuente de frustración. A pesar de estas peculiaridades, la legibilidad y expresividad de YAML lo han convertido en el lenguaje indiscutible de la gestión de configuración moderna.
Comprendiendo tus Resultados
Después del formateo, su YAML se muestra con indentación consistente que muestra claramente la estructura jerárquica de sus datos. Los mapeos y secuencias anidados se indentan un nivel más profundo cada uno, facilitando el seguimiento visual de las relaciones padre-hijo. El formateador estandariza la indentación en todo el documento, lo cual es crítico ya que YAML depende de los espacios en blanco para definir la estructura.
Una insignia verde "YAML Válido" confirma que su documento se analiza exitosamente bajo las reglas YAML 1.2. Si se detectan errores, aparece una insignia roja "YAML Inválido" con un mensaje de error detallado incluyendo número de línea, posición de columna y un fragmento de código mostrando la ubicación exacta del problema.
Los errores comunes incluyen indentación inconsistente, uso de tabulaciones en lugar de espacios, dos puntos faltantes después de claves de mapeo, indicadores incorrectos de cadenas multilínea y claves duplicadas dentro del mismo mapeo. Al convertir a JSON, tenga en cuenta que los comentarios, anclas y alias de YAML se descartan ya que JSON no tiene características equivalentes.
La salida JSON usa impresión bonita estándar con indentación de 2 espacios, haciéndola inmediatamente utilizable en aplicaciones JavaScript o cargas de API.
Cómo Usar
Pegue su código YAML o JSON en el área de entrada.
Haz clic en Formatear para embellecer, Validar para verificar sintaxis, o usa los botones de conversión.
Copia la salida formateada o usa la conversión YAML↔JSON según sea necesario.
Metodología
Esta herramienta usa la biblioteca js-yaml, una implementación JavaScript completa compatible con la especificación YAML 1.2, para todas las operaciones de análisis y serialización. Cuándo introduce YAML, la función safeLoad de js-yaml analiza el texto en un árbol de objetos JavaScript nativo, resolviendo anclas, alias y coerciones de tipo en el proceso.
La función safeLoad usa específicamente el DEFAULT_SAFE_SCHEMA, que previene la ejecución de código JavaScript arbitrario a través de etiquetas YAML, haciéndolo seguro para procesar entrada no confiable. El objeto resultante se re-serializa a YAML usando safeDump con el nivel de indentación configurado.
Para la conversión de YAML a JSON, el objeto JavaScript analizado se pasa a través de JSON.stringify con opciones de formato de impresión bonita. Para la conversión de JSON a YAML, la entrada se analiza primero con JSON.parse nativo, luego se serializa mediante safeDump de js-yaml.
La validación funciona intentando analizar la entrada y capturando cualquier error YAMLException, que incluye información detallada de número de línea, posición de columna y fragmento contextual que la herramienta presenta en formato claro y legible. Los comentarios se preservan durante el formateo YAML-a-YAML pero se pierden necesariamente durante la conversión JSON. Las anclas y alias también se derreferencian a sus valores completos en la salida JSON.
Ejemplos Prácticos
Un ingeniero DevOps actualiza un manifiesto de despliegue de Kubernetes para escalar un servicio de 3 a 5 réplicas. Después de editar el YAML manualmente, lo pega en este formateador para validar que la indentación es correcta y no se introdujeron errores de sintaxis antes de aplicar el cambio con kubectl.
Un desarrollador convierte un archivo de configuración JSON existente a YAML para un nuevo playbook de Ansible. Pega el JSON en el área de entrada, hace clic en "JSON a YAML" y recibe una salida YAML limpiamente formateada lista para guardarse como archivo de playbook.
Un líder de equipo revisa un archivo Docker Compose contribuido por un desarrollador junior. Formatea el YAML para estandarizar la indentación a 2 espacios, haciendo el archivo consistente con el resto de los archivos de configuración del proyecto.
Consejos y Mejores Prácticas
Use siempre espacios para la indentación, nunca tabulaciones. La mayoría de los parsers YAML rechazarán las tabulaciones por completo, y mezclar tabulaciones y espacios causa errores sutiles y difíciles de depurar. Mantenga 2 espacios por nivel para consistencia con las convenciones de la comunidad.
Entrecomille las cadenas que podrían malinterpretarse como otros tipos: valores como "yes", "no", "true", "false", "null", "1.0" y "on" se convierten automáticamente a booleanos o números en YAML. Envuélvalas en comillas simples o dobles para preservarlas como cadenas.
Use anclas (&nombre) y alias (*nombre) para evitar duplicar grandes bloques de configuración. Esto es especialmente útil en pipelines CI/CD donde múltiples trabajos comparten configuraciones comunes. Valide siempre su YAML después de editar, ya que un solo espacio mal colocado puede cambiar toda la estructura del documento.
YAML usa indentación para estructura y es más legible para humanos, usado frecuentemente para archivos de configuración. JSON usa llaves y corchetes, es más compacto y ampliamente usado para intercambio de datos y APIs.
¿Qué características de YAML son compatibles?
Esta herramienta soporta características estándar de YAML 1.2 incluyendo: pares clave-valor, objetos anidados, arrays, cadenas multilínea, comentarios, anclas y alias, y todos los tipos de datos básicos.
¿Por qué es importante la indentación en YAML?
YAML usa indentación (¡espacios, no tabs!) para definir estructura y jerarquía. A diferencia de JSON que usa llaves, YAML depende enteramente de indentación consistente. Típicamente se usan 2 espacios por nivel.
¿Cómo maneja YAML las cadenas multilínea?
YAML proporciona varios estilos de cadenas multilínea. El estilo de bloque literal (|) preserva los saltos de línea exactamente como están escritos — cada nueva línea en el fuente se convierte en una nueva línea en el valor analizado. El estilo de bloque plegado (>) une líneas con espacios, tratando las nuevas líneas simples como espacios y las dobles como saltos de párrafo. Ambos estilos pueden modificarse con indicadores de recorte: strip (-) elimina las nuevas líneas finales, keep (+) las preserva y clip (predeterminado) mantiene una nueva línea final. Por ejemplo, 'description: |\n Línea uno\n Línea dos' produce una cadena con una nueva línea real entre las líneas.
¿Por qué YAML tiene problemas de seguridad?
El problema de seguridad más conocido de YAML es la deserialización insegura. Algunos analizadores YAML (particularmente versiones antiguas de PyYAML y la biblioteca YAML de Ruby) soportan etiquetas específicas del lenguaje que pueden instanciar objetos arbitrarios durante el análisis, permitiendo potencialmente la ejecución remota de código. ¡Por ejemplo, la etiqueta !!python/object en PyYAML puede ejecutar código Python arbitrario. Mejores prácticas modernas: siempre usa funciones de carga segura (yaml.safe_load en Python, YAML.parse en JS), nunca analices YAML no confiable con instanciación completa de objetos habilitada y prefiere JSON para intercambio de datos con fuentes no confiables. El analizador basado en navegador de esta herramienta no ejecuta código arbitrario.
¿Puedo convertir entre YAML y JSON usando esta herramienta?
Esta herramienta se enfoca en formatear y validar YAML, no en convertir entre formatos. Sin embargo, YAML es un superconjunto de JSON — cada documento JSON válido es también YAML válido. Esto significa que puede pegar JSON en el formateador YAML y se analizará correctamente. Para conversión dedicada de JSON a YAML y YAML a JSON con control total sobre las opciones de salida, InnoviCat ofrece herramientas de conversión separadas. La diferencia clave entre formatos para la conversión: YAML soporta comentarios, anclas y cadenas multilínea que no tienen equivalente en JSON, por lo que la conversión de YAML a JSON puede perder estas características.
Mis Favoritos
Arrastra para reordenar
Aún no hay favoritos
Toca la ☆ en cualquier herramienta para marcarla como favorita.