Formatos y conversión
JSON, YAML y TOML: compara la misma configuración
Convierte una configuración entre tres formatos, comprueba su estructura e identifica pérdidas de nulos, fechas, números y comentarios.
Empieza por el formato que necesita la aplicación destinataria. Si exige JSON, un YAML más legible no lo sustituye hasta que el proceso convierta y valide explícitamente los datos.
La misma configuración en tres formatos
Descarga config.json y prueba JSON a YAML y JSON a TOML. Estas versiones describen los mismos datos anidados:
{"name":"api-gateway","port":8080,"featureFlags":["rate-limit","audit-log"],"database":{"host":"localhost","poolSize":20}}
name: api-gateway
port: 8080
featureFlags:
- rate-limit
- audit-log
database:
host: localhost
poolSize: 20
name = "api-gateway"
port = 8080
featureFlags = ["rate-limit", "audit-log"]
[database]
host = "localhost"
poolSize = 20
En TOML, featureFlags va antes de [database]. Las claves escritas después de esa cabecera pertenecen a la tabla database hasta que otra cabecera cambie el contexto. Mover el array debajo produciría database.featureFlags: la sintaxis seguiría siendo válida, pero la configuración sería diferente.
Vuelve con YAML a JSON o TOML a JSON. Comprueba que port es numérico, featureFlags está en la raíz y database.poolSize vale 20. El orden de las claves o los espacios pueden variar sin cambiar esos valores.
Diferencias que afectan a la conversión
Desplázate horizontalmente para ver todas las columnas.
| Característica de entrada | Qué comprobar |
|---|---|
JSON null |
TOML no tiene un valor equivalente directo; revisa los avisos |
| Array JSON en la raíz | TOML parte de tablas; envolverlo cambia la estructura |
| Alias YAML / referencias cíclicas | Los valores pueden repetirse; los ciclos no son árboles JSON normales |
| Claves YAML no textuales / etiquetas propias | No todo tiene un equivalente JSON portable |
| Fechas y horas TOML | JSON no tiene fecha nativa; convertir a string pierde el tipo |
| Enteros grandes / flotantes no finitos | Aplican la precisión de JavaScript y los números válidos en JSON |
| Comentarios y formato | JSON estándar no los conserva como metadatos |
JSONCraft avisa de algunos valores incompatibles con TOML, incluidos nulos y arrays raíz. Un aviso invita a revisar el contrato: no demuestra que el reemplazo conserve el significado.
Una elección práctica
JSON encaja en intercambio cuando importan compatibilidad y un modelo estricto. YAML sirve cuando el ecosistema lo utiliza y ayudan las anotaciones o su sintaxis adicional. TOML encaja en configuraciones expresables con tablas y tipos explícitos. Editar JSON a mano sigue siendo razonable si la aplicación lo exige y el editor ofrece validación.
YAML depende de la versión y las opciones del parser. YAML 1.1 puede interpretar NO como falso; YAML 1.2 acotó esa sintaxis. También varía el soporte de etiquetas y claves de combinación. Una conversión en el navegador no demuestra que otro runtime interprete todo igual. Usa una carga segura para entradas no fiables y valida el resultado.
Los arrays TOML permiten coma final; JSON no. Las tablas inline TOML tienen reglas propias: indica la versión que soporta tu parser y no generalices una regla de puntuación a todos los formatos.
Evita secretos en ejemplos y formularios de soporte. El conversor procesa los datos localmente; alojamiento y medición opcional se explican en privacidad.
Referencias: JSON RFC 8259, YAML 1.2.2 y TOML 1.0.
Herramientas relacionadas
Preguntas frecuentes
¿TOML puede representar cualquier JSON?
No. TOML no tiene null y su raíz es una tabla. Un conversor puede avisar, sustituir valores o envolver un array raíz; inspecciona el resultado.
¿Se conservan comentarios al pasar por JSON?
No. JSON estándar no admite comentarios. Leer y volver a escribir tampoco garantiza conservar anclas YAML o el formato original.