Skip to main content
CheckTown
Convertitori

TOML to JSON Converter: Bidirectional Format Conversion

Pubblicato 4 min di lettura
In questo articolo

Cos'e TOML?

TOML (Tom's Obvious Minimal Language) e un formato di file di configurazione progettato per essere facile da leggere e scrivere. Creato da Tom Preston-Werner (co-fondatore di GitHub) nel 2013, TOML si mappa in modo non ambiguo a una hash table, rendendolo semplice da analizzare in strutture dati in qualsiasi linguaggio di programmazione.

A differenza di YAML che si basa sull'indentazione e presenta numerose insidie, o JSON che non supporta commenti e virgole finali, TOML offre una via di mezzo: tipizzazione esplicita (stringhe, interi, float, booleani, date), sintassi tabellare chiara con [parentesi] e supporto per tabelle inline e array — il tutto senza l'ambiguita che affligge altri formati di configurazione.

Come funziona la conversione TOML in JSON

La conversione tra TOML e JSON comporta il parsing del formato sorgente in una struttura dati intermedia e la sua serializzazione nel formato di destinazione. Ogni tipo TOML corrisponde direttamente a un equivalente JSON.

  • Coppie chiave-valore — la sintassi chiave = valore di TOML corrisponde alle proprieta degli oggetti JSON; le chiavi con punto come server.port diventano oggetti annidati
  • Tabelle e array — le intestazioni [tabella] TOML diventano oggetti JSON, e i [[array-di-tabelle]] diventano array di oggetti JSON, preservando la struttura gerarchica
  • Sistema di tipi — i tipi nativi TOML (stringa, intero, float, booleano, datetime) corrispondono ai primitivi JSON; i valori datetime vengono serializzati come stringhe ISO 8601 poiche JSON non ha un tipo data

Prova gratuitamente — nessuna registrazione richiesta

Converti TOML in JSON →

Dove viene usato TOML

TOML e stato adottato da diversi grandi ecosistemi come formato di configurazione preferito grazie alla sua chiarezza e rigore.

  • Ecosistema Rust — Cargo.toml e il manifesto del pacchetto per ogni progetto Rust, che definisce dipendenze, impostazioni di build e metadati in un formato sia modificabile dall'uomo che analizzabile dalla macchina
  • Packaging Python — pyproject.toml (PEP 518/621) e diventato lo standard per la configurazione dei progetti Python, sostituendo setup.py e setup.cfg con un formato dichiarativo piu pulito
  • Generatori di siti statici — Hugo usa config.toml per la configurazione del sito, e molti altri strumenti (Deno, InfluxDB, Netlify) usano TOML per i loro file di configurazione

Domande frequenti

Quali sono le differenze tra TOML, YAML e JSON per la configurazione?

JSON e il piu semplice ma non supporta commenti e virgole finali, rendendolo scomodo per file di configurazione modificati manualmente. YAML supporta commenti ed e visivamente pulito ma la sua sintassi basata sull'indentazione porta a bug sottili. TOML supporta commenti, ha tipizzazione esplicita ed evita il parsing basato sull'indentazione.

Quali sono le limitazioni di TOML?

TOML puo diventare verboso per strutture profondamente annidate poiche ogni livello di annidamento richiede la propria intestazione [tabella.sottotabella]. Inoltre non ha un tipo null (a differenza di JSON e YAML), il che significa che i valori assenti devono essere gestiti omettendo completamente la chiave.

Come gestisce TOML date e orari?

TOML ha supporto nativo per i tipi di data e ora secondo RFC 3339: datetime con offset (2024-01-15T10:30:00Z), datetime locale (2024-01-15T10:30:00), data locale (2024-01-15) e ora locale (10:30:00). Nella conversione in JSON, vengono serializzati come stringhe ISO 8601 poiche JSON non ha un tipo data nativo.

Strumenti correlati