YAML vs JSON lado a lado: sintaxis, comentarios, tipos, texto multilínea y la trampa del yes/no. Prueba cómo se lee un valor sin comillas y decide de una vez entre .yaml y .yml.
JSON es un formato de datos estricto pensado para programas: llaves, corchetes, cadenas entre comillas dobles y sin comentarios. YAML expresa los mismos datos con indentación, admite comentarios y texto multilínea, y la versión 1.2 se diseñó como superconjunto de JSON. Elige JSON para APIs y salida de máquinas, y YAML para archivos que la gente edita a mano.
YAML y JSON comparados característica por característica
Los dos formatos describen lo mismo: mapas, listas, cadenas, números, booleanos y null. Las diferencias reales son quién lee el archivo y lo permisivo que es el parser. Prueba el comprobador de valores de abajo para ver qué tipo recibe un valor sin comillas, y luego lee los ejemplos lado a lado y las trampas que pillan a quien pasa de uno a otro.
YAML 1.2 se escribió para ser un superconjunto estricto de JSON, así que en la práctica un documento JSON se carga en un parser de YAML 1.2. Hay casos límite, como las claves duplicadas, que los parsers de JSON suelen tolerar pero YAML prohíbe.
Usa .yaml. El RFC 9512, que registra el media type application/yaml, considera .yaml la extensión preferida y señala que .yml se sigue usando. Ambas funcionan en herramientas como GitHub Actions, así que la elección es cuestión de coherencia dentro de un proyecto.
YAML 1.1 trataba palabras como yes, no, on, off, y y n como booleanos. El core schema de YAML 1.2 solo acepta true y false en tres variantes de mayúsculas, pero los parsers antiguos siguen siendo habituales. Poner el valor entre comillas elimina la duda.
No. El RFC 8259 enumera los tokens que puede contener JSON y los comentarios no están entre ellos. Algunas herramientas aceptan un JSON relajado con comentarios, pero un parser estricto rechazará el archivo.
La gramática de JSON es mucho más pequeña, y los navegadores incluyen un parser nativo para ella, así que suele ser la opción más rápida y segura para datos enviados por la red. Los parsers de YAML tienen que aplicar muchas más reglas, desde la indentación hasta el tipado implícito.
Los mismos ajustes de un sitio en los dos formatos. YAML elimina las comillas y las llaves y añade un comentario; JSON escribe explícitamente cada cadena y cada nivel de anidación.
Indentación de dos espacios, un comentario, una lista y una versión entre comillas para que siga siendo texto.
No es posible poner comentarios, y cada clave y cada cadena llevan comillas dobles.
Qué tipo recibe un valor YAML sin comillas, y la versión segura
Escribe un valor tal como aparecería tras los dos puntos en un archivo YAML, sin comillas. El comprobador aplica las reglas del core schema de YAML 1.2, la lista de booleanos de YAML 1.1 y la gramática de JSON.
Valor sin comillas
Core schema de YAML 1.2
Parsers de YAML 1.1
JSON, escrito tal cual
El mismo valor en JSON
booleano {v} (YAML 1.1 lee esta palabra como booleano)
Este valor no cae en la trampa de booleanos tipo yes/no
Valor JSON válido
No es JSON válido salvo entre comillas
JSON no tiene forma de escribir este número
Prueba uno
Empieza gratis · Sin tarjeta de crédito