La conversione da JSON a TOML trasforma i dati da JavaScript Object Notation in Tom's Obvious Minimal Language. JSON usa parentesi graffe, parentesi quadre e chiavi tra virgolette per rappresentare dati strutturati. TOML usa una sintassi piatta chiave-valore con intestazioni di sezione (chiamate tabelle) che si legge come un file INI ma con tipizzazione rigorosa. TOML è stato progettato specificamente per i file di configurazione dove la leggibilità umana conta più dello scambio automatico dei dati.
TOML è diventato il formato di configurazione predefinito per Rust (Cargo.toml), il packaging Python (pyproject.toml), i siti statici Hugo, le impostazioni di deployment Netlify e molti strumenti CLI. Quando i dati di origine esistono come JSON — da una risposta API, una configurazione esportata o un file generato — e il sistema di destinazione si aspetta TOML, serve un convertitore che mappi gli oggetti JSON in tabelle TOML, gli array JSON in array TOML, e preservi ogni tipo di dato con precisione.
Convertire JSON in TOML online è il modo più rapido per generare TOML valido da dati JSON esistenti. La conversione gestisce automaticamente la mappatura dei tipi: le stringhe JSON diventano stringhe TOML, i numeri JSON diventano interi o float TOML, i booleani JSON si mappano direttamente, e gli oggetti JSON diventano tabelle TOML. L'unica eccezione è il null — TOML non ha un tipo null, quindi i valori null vengono omessi o convertiti in stringhe vuote a seconda del convertitore.
Perché usare questo convertitore da JSON a TOML?
TOML è quello che i file di configurazione si aspettano; JSON è quello che producono le API e gli strumenti. Questo convertitore colma il divario per spostare i dati tra i due formati senza riscrittura manuale.
⚡
Conversione immediata
Incolla il JSON e ottieni subito l'output TOML. La conversione avviene mentre scrivi, senza richieste al server né caricamenti di file.
🔒
Elaborazione con privacy garantita
Tutta la conversione avviene localmente nel browser. Segreti di configurazione, chiavi API e credenziali di database nel tuo JSON non lasciano mai il dispositivo.
🔀
Supporto completo delle strutture
Gli oggetti annidati diventano tabelle TOML, gli array di oggetti diventano array di tabelle ([[table]]), e gli array con tipi misti vengono gestiti correttamente.
📋
Nessun account richiesto
Apri la pagina e converti. Nessuna registrazione, nessuna estensione da installare, nessuna dipendenza CLI. Funziona su qualsiasi dispositivo con un browser moderno.
Casi d'uso della conversione JSON in TOML
Configurazione di progetti Rust
Cargo.toml definisce dipendenze, funzionalità e impostazioni di build per i progetti Rust. Converti elenchi di dipendenze JSON o configurazioni generate nel formato Cargo.toml direttamente.
Packaging Python (pyproject.toml)
PEP 518 e PEP 621 hanno standardizzato pyproject.toml come file di metadati dei progetti Python. Converti i metadati di pacchetto JSON esistenti nella struttura TOML richiesta.
Configurazione di siti statici
Hugo, Netlify e altri generatori di siti statici usano file di configurazione TOML. Quando si migra da una configurazione basata su JSON o si genera la configurazione in modo programmatico, converti l'output in TOML.
DevOps e infrastruttura
Strumenti come Terraform (per certi provider), Consul e vari runtime di container accettano configurazioni TOML. Converti le impostazioni esportate in JSON in TOML senza riscrivere i valori.
Risposta API come file di configurazione
Le API REST restituiscono JSON. Quando devi usare quei dati come configurazione TOML — ad esempio per feature flag o impostazioni di ambiente — incolla la risposta e ottieni TOML valido.
Apprendimento della sintassi TOML
Studenti e sviluppatori che si avvicinano a TOML per la prima volta possono incollare strutture JSON familiari e vedere l'output TOML equivalente.
Confronto JSON vs TOML
JSON e TOML si sovrappongono nelle funzionalità ma differiscono nella sintassi, nel supporto dei tipi e nell'uso previsto. Questa tabella mostra le differenze che influenzano la conversione.
TOML ha regole che differiscono da JSON in modi che influenzano l'output della conversione. Questi quattro problemi causano la maggior parte della confusione.
Nessun tipo null in TOML
JSON supporta null come valore di prima classe. TOML non ha alcun tipo null. Durante la conversione, i valori null devono essere gestiti — omettendo completamente la chiave, usando una stringa vuota, o scegliendo un valore sentinella. Questo significa che un ciclo completo da JSON a TOML e di ritorno potrebbe non riprodurre i valori null originali.
Gli array eterogenei sono limitati
Gli array JSON possono mescolare liberamente i tipi: [1, "due", true]. TOML v1.0.0 richiede che tutti gli elementi di un array siano dello stesso tipo. Se il tuo JSON contiene array con tipi misti, il convertitore deve stringificare tutti gli elementi o restituire un errore. Verifica l'output quando gli array di origine contengono tipi misti.
Gli oggetti profondamente annidati diventano prolissi
JSON gestisce l'annidamento profondo naturalmente con parentesi graffe nidificate. TOML usa chiavi puntate o intestazioni [table.subtable.key] concatenate, che possono diventare lunghe per strutture molto annidate. L'output è valido ma meno compatto rispetto all'originale JSON.
Restrizioni sui nomi delle chiavi
Le chiavi bare di TOML possono contenere solo lettere ASCII, cifre, trattini e underscore. Le chiavi JSON possono essere qualsiasi stringa. Se il tuo JSON ha chiavi con spazi, punti o caratteri speciali, quelle chiavi devono essere tra virgolette nell'output TOML. La maggior parte dei convertitori gestisce questo automaticamente, ma verifica l'output se le chiavi contengono caratteri insoliti.
Esempi di codice
La conversione programmatica da JSON a TOML richiede una libreria di serializzazione TOML nella maggior parte dei linguaggi. Le librerie standard gestiscono il parsing JSON; l'output TOML necessita di un pacchetto dedicato.
import json
import tomli_w # pip install tomli_w
json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main
import (
"encoding/json"
"fmt"
"github.com/pelletier/go-toml/v2"
)
func main() {
jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
var data map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
tomlBytes, _ := toml.Marshal(data)
fmt.Println(string(tomlBytes))
// → title = 'My App'
// →
// → [database]
// → host = 'localhost'
// → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000
# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000
Domande frequenti
La conversione da JSON a TOML è senza perdita di dati?
Per la maggior parte dei dati, sì. Stringhe, interi, float, booleani, oggetti e array hanno tutti equivalenti diretti in TOML. Le due eccezioni sono null (TOML non ha un tipo null, quindi i valori null vengono omessi o sostituiti) e gli array con tipi misti (TOML richiede tipi uniformi negli array). Se il tuo JSON evita questi due pattern, la conversione è completamente senza perdita di dati.
Cosa succede ai valori null di JSON in TOML?
TOML non ha un tipo null. I convertitori di solito omettono dall'output le chiavi con valori null, poiché non c'è modo di rappresentare "la chiave esiste ma non ha valore" in TOML. Alcuni convertitori permettono di usare una stringa vuota in alternativa. Verifica l'output se i valori null hanno un significato nei tuoi dati.
TOML può rappresentare oggetti JSON annidati?
Sì. Gli oggetti JSON diventano tabelle TOML. Un oggetto annidato come {"database": {"host": "localhost"}} si converte in un'intestazione di tabella [database] con host = "localhost" sotto di essa. L'annidamento arbitrariamente profondo è supportato tramite chiavi puntate o intestazioni di tabella annidate.
Perché Rust e Python usano TOML invece di JSON?
TOML supporta i commenti, essenziali per documentare le scelte di configurazione. Produce anche un output più pulito per le impostazioni chiave-valore piatte, che costituiscono la maggior parte dei metadati dei pacchetti. JSON vieta i commenti (RFC 8259), rendendolo più difficile da mantenere come formato di configurazione modificato manualmente.
Come gestisce TOML le date e gli orari?
TOML ha tipi datetime nativi: datetime con offset (2024-01-15T10:30:00Z), datetime locale, data locale e ora locale. JSON non ha un tipo data — le date sono memorizzate come stringhe. Quando si converte JSON in TOML, le stringhe che rappresentano date rimangono stringhe a meno che il convertitore non rilevi e converta esplicitamente i pattern ISO 8601.
È sicuro incollare segreti e credenziali in questo strumento?
Sì. La conversione avviene interamente nel browser tramite JavaScript. Nessun dato viene inviato ad alcun server. Puoi verificarlo aprendo gli strumenti per sviluppatori del browser, passando alla scheda Network e confermando che non vengono effettuate richieste durante la conversione.
Quale versione di TOML segue l'output?
L'output segue TOML v1.0.0, rilasciata a gennaio 2021 ed è la specifica stabile corrente. Questa versione richiede tipi uniformi negli array, supporta le chiavi puntate e definisce il formato datetime. La specifica è mantenuta su toml.io.