Validador y formateador de YAML
Pega YAML para comprobarlo al instante: los errores se muestran con su línea y columna y se resalta la línea con el fallo. Luego formatéalo, minifícalo, ordena las claves o conviértelo a JSON. Todo se ejecuta en tu navegador.
Última actualización:
El formateo reescribe los datos, así que los comentarios no se conservan en el resultado. La validación nunca cambia tu entrada.
Cómo usar Validador y formateador de YAML
- Pega YAML en el editor o pulsa Subir para abrir un archivo .yaml, .yml o .json.
- Lee la barra de estado: indica YAML válido o muestra la línea y la columna del primer error, con la línea resaltada en rojo.
- Pulsa Formatear YAML para formatearlo con tu sangría y, opcionalmente, con las claves ordenadas, o Minificar para un estilo flow compacto.
- Convierte con YAML → JSON, o pega JSON y pulsa JSON → YAML.
- Copia o descarga el resultado desde el cuadro de la derecha.
Los errores de YAML más comunes y cómo solucionarlos
| Mensaje de error | Causa típica | Solución |
|---|---|---|
| bad indentation of a mapping entry | Una clave tiene una sangría con un número de espacios distinto al de sus claves hermanas | Alinea las claves del mismo nivel exactamente en la misma columna |
| end of the stream or a document separator is expected | Texto después de un valor en el mismo nivel; a menudo falta un signo de dos puntos o sobra un espacio antes de una clave | Revisa si falta un : en la línea anterior a la indicada |
| duplicated mapping key | La misma clave aparece dos veces en un mapeo; la mayoría de los analizadores se quedan sin avisar solo con la última | Elimina o cambia el nombre de una de las claves |
| tab characters must not be used in indentation | El archivo se sangró con tabulaciones | Sustituye las tabulaciones por espacios (lo habitual son 2 por nivel) |
| unexpected end of the stream within a double quoted scalar | Una comilla de apertura sin comilla de cierre | Cierra la comilla o escapa las comillas internas |
| incomplete explicit mapping pair; a key node is missed | Un valor que empieza por ?, :, {, [, &, *, !, |, >, @ o % sin comillas | Pon el valor entre comillas, por ejemplo pattern: "*.log" |
Chuleta de sintaxis YAML
| Elemento | YAML | Equivalente en JSON |
|---|---|---|
| Mapeo | name: app | {"name": "app"} |
| Secuencia | - a- b | ["a", "b"] |
| Estilo flow | {a: 1, b: [x, y]} | {"a": 1, "b": ["x", "y"]} |
| Bloque literal (conserva los saltos de línea) | script: | line 1 line 2 | "line 1\nline 2\n" |
| Bloque plegado (une las líneas) | text: > one two | "one two\n" |
| Ancla y alias | base: &b {x: 1}copy: *b | El valor con alias se repite |
| Nulo | ~, null o un valor vacío | null |
| Comentario | # note | No se admite en JSON |
| Varios documentos | --- entre documentos | Un array de documentos |
Consejos para archivos de configuración
- Pon entre comillas los valores ambiguos. Los números de versión como
1.10se convierten en el número 1.1, y las horas como22:30pueden leerse como números en los analizadores de YAML 1.1. Escribe"1.10"y"22:30". - Mantén una sangría coherente. Elige 2 espacios por nivel y configura tu editor para que inserte espacios al pulsar Tab.
- Vigila los elementos de lista bajo una clave. En Kubernetes, Docker Compose y GitHub Actions son válidos tanto
key:seguido de- itemen la misma columna como con una sangría de dos espacios, pero mezclar los dos estilos en un archivo facilita los errores. - Valida antes de desplegar. Una comprobación de sintaxis aquí detecta los errores estructurales; después, herramientas como
kubectl apply --dry-run=clientodocker compose configcomprueban el contenido con su propio esquema.
Preguntas frecuentes
¿Qué comprueba el validador?
Analiza el texto con js-yaml, un analizador de YAML 1.2, e informa de errores de sintaxis como sangría incorrecta, tabulaciones usadas para sangrar, comillas o corchetes sin cerrar, claves duplicadas en un mapeo y anclas o alias no válidos. Comprueba que el YAML esté bien formado; no lo valida contra un esquema como una especificación de Kubernetes o GitHub Actions.
¿Por qué desaparecen mis comentarios al formatear?
El formateo funciona leyendo el YAML como datos y escribiéndolo de nuevo, y los comentarios no forman parte de los datos. Usa la salida formateada cuando quieras un archivo limpio y normalizado, y conserva el original si los comentarios importan. La validación nunca cambia tu texto.
¿Puedo usar tabulaciones en YAML?
No. La especificación de YAML prohíbe los caracteres de tabulación para la sangría; usa espacios. Las tabulaciones dentro de cadenas entre comillas o después de un valor no dan problema. El validador señala la línea exacta cuando se usa una tabulación para sangrar.
¿Cómo valido un archivo con varios documentos?
Separa los documentos con una línea que contenga tres guiones (---), como en los manifiestos de Kubernetes. El validador lee todos los documentos, la barra de estado muestra cuántos encontró y YAML → JSON los devuelve como un array JSON.
¿Cuál es la diferencia entre YAML y JSON?
En la práctica, JSON es un subconjunto estricto de YAML 1.2, así que la mayoría de los archivos JSON también son YAML válido. YAML añade comentarios, estructura basada en la sangría, anclas y alias para reutilizar, cadenas de varias líneas y varios documentos por archivo, por eso es tan popular para la configuración.
¿Por qué 'no' u 'on' se convirtieron en true o false?
Los analizadores antiguos de YAML 1.1 trataban yes, no, on y off como booleanos (el 'problema de Noruega', en el que el código de país NO se convierte en false). js-yaml sigue YAML 1.2, donde solo true y false son booleanos, pero otras herramientas pueden comportarse distinto, así que pon esos valores entre comillas para ir sobre seguro.
¿Se sube mi YAML?
No. El análisis se hace en tu navegador. La biblioteca js-yaml se descarga una vez desde una CDN pública y tus datos se quedan en tu dispositivo.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.