TOML (Tom's Obvious Minimal Language) è un formato di file di configurazione progettato per essere leggibile dagli esseri umani. Si mappa in modo non ambiguo su una tabella hash, supporta tabelle annidate, valori tipizzati e commenti inline. Molti strumenti e framework usano TOML come formato di configurazione principale: i progetti Rust si affidano a Cargo.toml, il packaging Python usa pyproject.toml e i siti statici Hugo si configurano tramite config.toml. Convertire TOML in JSON online consente di trasformare questi file di configurazione in un formato che praticamente ogni linguaggio di programmazione, API e pipeline di dati può consumare nativamente.
JSON (JavaScript Object Notation), definito dall'RFC 8259, è il formato di scambio dati più ampiamente supportato. Mentre TOML privilegia la leggibilità umana con la sua sintassi minimale e il supporto ai commenti, JSON privilegia l'interoperabilità tra macchine. Un convertitore da TOML a JSON colma questo divario analizzando l'input TOML secondo la specifica TOML v1.0.0 ed emettendo un documento JSON strutturalmente equivalente. La conversione preserva tutti i dati: stringhe, interi, float, booleani, array e tabelle si mappano direttamente sui loro corrispettivi JSON.
TOML ha quattro tipi nativi di data/ora che JSON non può rappresentare direttamente: date-time con offset, date-time locali, date locali e ore locali. JSON non ha un tipo data, quindi questi valori vengono serializzati come stringhe ISO 8601 durante la conversione.
Perché usare un convertitore da TOML a JSON?
I file di configurazione scritti in TOML spesso devono alimentare sistemi che accettano solo JSON. Invece di riscrivere il file manualmente o installare una libreria parser in locale, un convertitore basato su browser gestisce la trasformazione in pochi secondi.
🔒
Elaborazione Privacy-First
I tuoi dati TOML vengono analizzati e convertiti interamente nel browser. Nulla viene caricato su un server, rendendo sicura la conversione di file di configurazione che contengono chiavi API, credenziali del database o nomi host interni.
⚡
Conversione Istantanea
Incolla il tuo TOML e ottieni immediatamente l'output JSON formattato. Non è necessario installare pacchetti Node.js, librerie Python o strumenti CLI solo per eseguire una conversione di formato occasionale.
🔀
Supporto Completo a TOML v1.0.0
Il convertitore gestisce tutti i tipi di dati TOML, incluse chiavi puntate, tabelle inline, array di tabelle, stringhe multiriga e valori data-ora. I casi limite che rendono difficile la conversione manuale vengono gestiti correttamente.
📋
Nessun Account Richiesto
Apri la pagina, incolla il tuo TOML e copia il risultato JSON. Non è richiesta alcuna registrazione, non ci sono limiti di velocità né tracciamento dell'utilizzo. Lo strumento funziona allo stesso modo ogni volta che lo visiti.
Casi d'uso di TOML in JSON
Sviluppo Frontend
Converti i metadati Cargo.toml di un progetto Rust WASM in JSON per essere utilizzati da uno script di build JavaScript o da un passaggio di generazione di package.json.
Ingegneria Backend
Trasforma la configurazione dell'applicazione scritta in TOML in JSON per l'iniezione in ambienti che richiedono config JSON, come le variabili d'ambiente di AWS Lambda o le etichette dei container Docker.
DevOps e CI/CD
Strumenti di pipeline come GitHub Actions e GitLab CI spesso lavorano con input JSON. Converti le configurazioni di strumenti basati su TOML (rustfmt.toml, taplo.toml) in JSON per passaggi di linting o validazione.
QA e Testing
Genera fixture di test JSON da file sorgente TOML. TOML è più facile da mantenere come sorgente di dati di test grazie al supporto ai commenti e alla sintassi leggibile, ma i test harness spesso si aspettano input JSON.
Data Engineering
Durante la migrazione di configurazioni tra sistemi, i file TOML di una piattaforma (ad esempio InfluxDB, Telegraf) potrebbe essere necessario trasformarli in documenti JSON per l'API o lo strumento di importazione di un'altra piattaforma.
Apprendimento e Formazione
Gli studenti che imparano i formati di dati possono incollare esempi TOML e vedere esattamente come le tabelle diventano oggetti annidati, come gli array di tabelle diventano array JSON e come i tipi data di TOML si mappano su stringhe.
Riferimento alla mappatura dei tipi da TOML a JSON
Ogni tipo TOML ha un equivalente JSON diretto, con un'eccezione: i valori di data e ora. La tabella seguente mostra come ogni tipo TOML viene convertito in JSON. Questa mappatura segue la specifica TOML v1.0.0 e corrisponde al comportamento dei parser standard come tomllib (Python), toml-rs (Rust) e @iarna/toml (Node.js).
Tipo
Sintassi TOML
Output JSON
String
"value"
"value"
Integer
42
42
Float
3.14
3.14
Boolean
true / false
true / false
Offset Date-Time
1979-05-27T07:32:00Z
"1979-05-27T07:32:00Z"
Local Date-Time
1979-05-27T07:32:00
"1979-05-27T07:32:00"
Local Date
1979-05-27
"1979-05-27"
Local Time
07:32:00
"07:32:00"
Array
[1, 2, 3]
[1, 2, 3]
Table
[section]
{ "section": {} }
Inline Table
{ key = "val" }
{ "key": "val" }
Array of Tables
[[items]]
"items": [{}]
Gli interi TOML supportano gli underscore per la leggibilità (ad es. 1_000_000) e i letterali esadecimali (0xDEADBEEF), ottali (0o755) e binari (0b11010110). Tutti questi vengono convertiti in numeri decimali semplici in JSON. TOML supporta anche i valori float infinito e NaN, ma questi non hanno rappresentazione JSON e causeranno un errore di conversione in modalità strict.
Esempi di Codice
Esempi funzionanti di conversione da TOML a JSON in quattro linguaggi. Ognuno legge un file TOML, lo analizza e restituisce JSON formattato.
import tomllib # Python 3.11+ (standard library)
import json
with open('config.toml', 'rb') as f:
data = tomllib.load(f)
print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main
import (
"encoding/json"
"fmt"
"os"
"github.com/BurntSushi/toml"
)
func main() {
var data map[string]any
_, err := toml.DecodeFile("config.toml", &data)
if err != nil {
panic(err)
}
out, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(out))
}
Cosa succede ai commenti TOML durante la conversione?
I commenti TOML (righe che iniziano con #) vengono scartati durante la conversione. JSON non supporta i commenti, quindi non è possibile preservarli nell'output. Se hai bisogno di mantenere i commenti, considera l'utilizzo di JSONC (JSON con Commenti) come formato di destinazione.
La conversione da TOML a JSON può perdere dati?
Per i documenti TOML standard, nessun dato viene perso. Tutte le stringhe, i numeri, i booleani, gli array e le tabelle hanno equivalenti JSON diretti. L'unica trasformazione riguarda i valori di data e ora, che diventano stringhe ISO 8601 in JSON. Due casi limite possono causare problemi: TOML supporta i float infinito e NaN, che non hanno rappresentazione JSON, e gli interi molto grandi possono superare i limiti di precisione del parser JSON (2^53 - 1 in JavaScript).
Come vengono rappresentati in JSON gli array di tabelle TOML?
La sintassi [[doppia-parentesi]] di TOML definisce un array di tabelle. Ogni blocco [[sezione]] aggiunge un nuovo oggetto a un array JSON. Ad esempio, due blocchi [[fruits]] diventano un array JSON con due oggetti: "fruits": [{...}, {...}]. La sintassi a doppia parentesi è una delle parti più difficili di TOML da leggere a freddo; l'output JSON rende la struttura evidente.
La conversione è reversibile? Posso tornare da JSON a TOML?
Strutturalmente, sì. Qualsiasi oggetto JSON può essere rappresentato come una tabella TOML, e gli array JSON si mappano sugli array TOML. Tuttavia, le funzionalità specifiche di TOML come i commenti, il raggruppamento con chiavi puntate e la formattazione delle tabelle inline vengono perse durante la conversione iniziale da TOML a JSON e non possono essere recuperate. Il ciclo di andata e ritorno produrrà un TOML valido ma potenzialmente meno leggibile.
Qual è la differenza tra TOML e JSON per i file di configurazione?
TOML è stato progettato per la configurazione: supporta i commenti, ha una sintassi più leggibile per le strutture annidate, distingue tra interi e float e include tipi nativi di data/ora. JSON è stato progettato per lo scambio di dati tra programmi. JSON è supportato da più strumenti e API, ma TOML è più facile da leggere e modificare per gli esseri umani. Molti progetti usano TOML per la configurazione sorgente e convertono in JSON per il deployment.
Come gestisce questo strumento le chiavi puntate come server.host?
Le chiavi puntate in TOML (ad es. server.host = "localhost") creano oggetti annidati in JSON: {"server": {"host": "localhost"}}. Questo è equivalente a definire una tabella [server] con una chiave host. Il convertitore risolve automaticamente le chiavi puntate nella loro struttura annidata completa.
Perché il mio file TOML non viene convertito?
Le cause comuni includono: virgolette mancanti attorno ai valori stringa (TOML le richiede), utilizzo di tabulazioni per l'indentazione all'interno di stringhe di base multiriga, definizioni di chiavi duplicate e mix di chiavi puntate con intestazioni di tabella esplicite per lo stesso percorso. Il convertitore mostra il messaggio di errore del parser con il numero di riga per aiutarti a individuare il problema.