Los mismos ajustes pueden escribirse en TOML, YAML o JSON. Los tres ejemplos de abajo contienen datos idénticos: analizados con tomllib de Python, PyYAML y json, dan resultados iguales. Convierta entre ellos con Conversor de TOML a JSON, Conversor de JSON a TOML, Conversor de JSON a YAML y Conversor de YAML a JSON.
La misma configuración de tres maneras
TOML
title = "Demo"
debug = false
ports = [8000, 8001]
[database]
host = "localhost"
max_connections = 50
YAML
title: Demo
debug: false
ports: [8000, 8001]
database:
host: localhost
max_connections: 50
JSON
{
"title": "Demo",
"debug": false,
"ports": [8000, 8001],
"database": {
"host": "localhost",
"max_connections": 50
}
}
De un vistazo
| TOML | YAML | JSON | |
|---|---|---|---|
| Comentarios | Sí (#) |
Sí (#) |
No |
| Estructura | Tablas y claves; sin reglas de sangría | Sangría | Llaves y corchetes |
| Fechas y horas | Tipos nativos | Nativos (según la versión) | Solo cadenas |
| Comas finales | Permitidas en arrays | No aplica | No permitidas |
| Claves duplicadas | Error | Depende del analizador | Depende del analizador |
| Valor nulo | No existe | null o ~ |
null |
| Ideal para | Configuración editada a mano | Configuración y manifiestos muy anidados | Intercambio de datos y API |
Trampas
- Los analizadores de YAML 1.1 (PyYAML y muchas herramientas antiguas) leen
NOcomofalse,01234como el número 668 (octal) y12:30como 750 (base 60). Ponga comillas a todo lo que deba seguir siendo cadena. - JSON no tiene comentarios y muchos analizadores guardan los números como dobles, así que
9007199254740993pasa a9007199254740992en JavaScript. - TOML resulta incómodo para datos muy anidados y para arrays largos de objetos mixtos; repetir encabezados de tabla con corchetes dobles se hace verboso.
- Las claves duplicadas son un error en TOML y se sobrescriben en silencio en algunos analizadores de YAML y JSON.
Cuál elegir
- Ajustes de aplicación escritos a mano: TOML.
- Manifiestos de Kubernetes, canalizaciones de CI y otros ecosistemas construidos sobre él: YAML.
- Datos de navegador, API y de máquina a máquina: JSON. Compruebe que un documento es válido con Validador JSON y Depurador en Línea.