ToolDeck

TOML

2 strumenti

Gli strumenti TOML di ToolDeck ti permettono di formattare, validare e convertire file di configurazione TOML direttamente nel browser — senza installazione, senza account, senza caricare dati su alcun server. Il TOML Formatter analizza il tuo input TOML e lo riseriallizza con indentazione coerente, ordinamento normalizzato delle chiavi ed errori di validazione inline che individuano i problemi di sintassi. Il TOML to JSON Converter trasforma documenti TOML nei loro equivalenti JSON, preservando i tipi di dati inclusi datetime, tabelle inline e array di tabelle. Entrambi gli strumenti funzionano interamente lato client, quindi i tuoi file di configurazione — che spesso contengono credenziali di database, endpoint API e segreti di distribuzione — rimangono sul tuo computer. Se hai bisogno della conversione inversa, il JSON to TOML Converter nella categoria JSON gestisce quella trasformazione.

Cosa Sono gli Strumenti TOML?

TOML (Tom's Obvious, Minimal Language) è un formato per file di configurazione basato su una sintassi esplicita e non ambigua. Creato da Tom Preston-Werner, co-fondatore di GitHub, TOML è stato rilasciato per la prima volta nel 2013 e ha raggiunto la specifica v1.0 nel gennaio 2021. Il formato si mappa senza ambiguità a una tabella hash: ogni file TOML definisce un albero di coppie chiave-valore organizzate in tabelle (sezioni contrassegnate da [parentesi]). A differenza di YAML, TOML non si affida all'indentazione per la struttura, eliminando un'intera classe di bug legati agli spazi bianchi. A differenza di JSON, TOML supporta i commenti, tipi nativi per data/ora e stringhe multiriga — funzionalità di cui i file di configurazione hanno bisogno ma che JSON non è mai stato progettato per fornire.

Gli strumenti TOML automatizzano il lavoro meccanico di lettura, validazione e conversione dei file TOML. Gli strumenti di formattazione normalizzano l'indentazione e l'ordinamento delle chiavi in modo che i file di configurazione restino leggibili in un team, anche quando più sviluppatori modificano lo stesso file. Gli strumenti di conversione traducono tra TOML e JSON, utile quando una libreria o API si aspetta input JSON ma la fonte di verità è una configurazione TOML. La validazione individua errori di sintassi — una parentesi di chiusura mancante, una chiave duplicata o un letterale datetime non valido — prima che causino problemi all'avvio dell'applicazione.

Queste operazioni si presentano frequentemente nei progetti Rust (dove Cargo.toml è il manifesto del pacchetto), nel packaging Python (pyproject.toml ha sostituito setup.py come configurazione di build standard in PEP 518 e PEP 621), nei siti statici Hugo (che usano TOML per la configurazione del sito per impostazione predefinita) e in qualsiasi infrastruttura che memorizza la configurazione in file TOML. La specifica TOML è mantenuta su toml.io e i parser esistono per tutti i principali linguaggi di programmazione.

Perché Usare gli Strumenti TOML su ToolDeck?

Gli strumenti TOML di ToolDeck analizzano ed elaborano tutto all'interno del tuo tab del browser usando JavaScript. Nessun dato di configurazione viene trasmesso a un server, non è richiesto alcun account e gli strumenti funzionano offline dopo il primo caricamento della pagina.

🔒
Privato per impostazione predefinita
I file di configurazione contengono spesso valori sensibili — URL di database, chiavi API, target di distribuzione. ToolDeck elabora TOML interamente lato client, quindi nulla lascia il tuo browser. Sicuro per progetti proprietari e configurazioni di infrastruttura interna.
Feedback immediato
Incolla il TOML, vedi subito l'output formattato o il JSON. Gli errori di sintassi vengono segnalati con numeri di riga e descrizioni. Nessuna attesa per l'installazione di uno strumento CLI o il completamento di uno step di build.
🔄
Conversione accurata dei tipi
Il convertitore TOML to JSON preserva i tipi specifici di TOML come i datetime con offset, le date locali e le ore locali come stringhe ISO 8601. La precisione di interi e float viene mantenuta. Gli array di tabelle vengono mappati correttamente a array JSON di oggetti.
🌐
Nessuna installazione richiesta
Funziona su qualsiasi dispositivo con un browser moderno. Utile quando stai esaminando una pull request su un computer senza il tuo ambiente di sviluppo abituale, o quando hai bisogno di validare rapidamente un file TOML di un collega.

Casi d'Uso degli Strumenti TOML

La formattazione, la validazione e la conversione TOML si presentano in diversi ruoli e tipi di progetto. Gli sviluppatori Rust lavorano con Cargo.toml ogni giorno. Gli sviluppatori Python configurano build e strumenti tramite pyproject.toml. Gli ingegneri DevOps gestiscono la configurazione delle applicazioni distribuita come TOML. Le attività seguenti mostrano dove gli strumenti TOML nel browser fanno risparmiare tempo rispetto alla scrittura di uno script al volo o all'installazione di uno strumento CLI.

Pulizia di Cargo.toml
Dopo aver unito diverse aggiunte di dipendenze, il Cargo.toml di un progetto Rust ha una formattazione incoerente. Passalo attraverso il TOML Formatter per normalizzare l'indentazione e l'ordine delle chiavi prima di eseguire il commit.
Da pyproject.toml a JSON
Una pipeline CI necessita dei metadati di build in formato JSON, ma la fonte di verità è pyproject.toml. Usa il TOML to JSON Converter per generare la rappresentazione JSON e verificare il mapping prima di inserire la conversione nella pipeline.
Migrazione della configurazione
Spostare un'applicazione da una configurazione basata su JSON a TOML (o viceversa). Il TOML to JSON Converter ti permette di confrontare le due rappresentazioni affiancate per confermare che i tipi di dati, le strutture annidate e la semantica degli array siano preservati.
Debug della sintassi
Un file di configurazione TOML non viene analizzato all'avvio dell'applicazione con un messaggio di errore opaco. Incollalo nel TOML Formatter per ottenere numeri di riga e colonna specifici per l'errore di sintassi, insieme a una descrizione di ciò che il parser si aspettava.
Generazione della documentazione
Stai scrivendo documentazione che include esempi di configurazione sia in TOML che in JSON. Converti l'esempio TOML canonico tramite il TOML to JSON Converter in modo che entrambe le versioni rimangano sincronizzate senza trascrizione manuale.
Imparare la sintassi TOML
Gli sviluppatori nuovi a TOML possono sperimentare con il formato scrivendo TOML nel TOML Formatter, vedendo gli errori di validazione in tempo reale e confrontando la struttura con l'output formattato. Questo è più rapido che leggere la specifica da soli.

Riferimento ai Tipi di Dati TOML

TOML v1.0 definisce i seguenti tipi di dati. Ogni tipo si mappa a una rappresentazione specifica quando convertito in JSON. La tabella seguente copre sintassi, esempi e comportamento di conversione per ogni tipo TOML.

TipoSintassiEsempioMapping JSON
String"..." o '...'name = "TOML"Stringa JSON. Le stringhe di base supportano sequenze di escape (\n, \t, \u). Le stringhe letterali ('...') trattano le barre rovesciate come caratteri letterali.
Integercifre, 0x, 0o, 0bport = 8080Numero JSON. Supporta esadecimale (0xDEAD), ottale (0o755), binario (0b1010) e separatori underscore (1_000).
Floatcifre con . o epi = 3.14159Numero JSON. Supporta inf, -inf e nan (mappati a null o stringa in JSON, poiché JSON non ha il tipo NaN).
Booleantrue / falseenabled = trueBooleano JSON. Solo true e false in minuscolo sono validi.
Offset Date-TimeRFC 33392024-01-15T09:30:00ZStringa JSON (ISO 8601). Include l'offset del fuso orario. Nessun tipo datetime nativo in JSON.
Local Date-Timedata T ora2024-01-15T09:30:00Stringa JSON. Nessuna informazione sul fuso orario. Utile per orari locali.
Local DateYYYY-MM-DD2024-01-15Stringa JSON. Data senza componente orario.
Local TimeHH:MM:SS09:30:00Stringa JSON. Ora senza data o fuso orario.
Array[valore, ...]ports = [8080, 8443]Array JSON. Gli array TOML possono essere eterogenei in TOML v1.0 ma devono essere omogenei in v0.5.
TabletomlCategoryContent.r10Syntax[database]Oggetto JSON. Le tabelle standard usano [parentesi]. Le tabelle inline usano parentesi graffe su una singola riga.

La specifica TOML v1.0.0 (toml.io) è la versione stabile corrente. Gli array di tabelle usano [[doppie parentesi]] per definire voci di tabelle ripetute, mappando a array JSON di oggetti.

Come Scegliere lo Strumento TOML Giusto

ToolDeck ha tre strumenti che lavorano con file TOML. Due sono nella categoria TOML e uno è nella categoria JSON per la conversione nella direzione inversa. Scegli lo strumento adatto alla tua attività.

  1. 1
    Se hai bisogno di re-indentare un file TOML, normalizzare l'ordinamento delle chiavi o validare la sintassi TOML con segnalazione degli errori a livello di rigaTOML Formatter
  2. 2
    Se hai bisogno di convertire un file di configurazione TOML in JSON per l'uso in API, script o strumenti che si aspettano input JSONTOML to JSON Converter
  3. 3
    Se hai bisogno di convertire un documento JSON in formato TOML per progetti che usano TOML come standard di configurazioneJSON to TOML Converter

Per il lavoro quotidiano con TOML, il TOML Formatter gestisce la formattazione e la validazione in un unico passaggio — incolla il tuo TOML e produrrà output pulito o ti indicherà esattamente dove si trova l'errore di sintassi. Quando hai bisogno di fare il ponte tra TOML e JSON, il TOML to JSON Converter preserva tutti i tipi di dati TOML inclusi datetime e tabelle annidate. Per la direzione inversa (JSON a TOML), usa il JSON to TOML Converter nella categoria JSON. Se stai eseguendo il debug di una configurazione che non viene analizzata, inizia con il TOML Formatter: i suoi messaggi di errore includono numeri di riga e descrizioni del token atteso che sono più specifici di quanto riportano la maggior parte dei parser TOML a livello di applicazione.

Domande Frequenti

Qual è la differenza tra TOML e YAML?
TOML usa la sintassi con parentesi esplicite per le tabelle e non si affida all'indentazione per la struttura. YAML usa l'indentazione per definire la gerarchia, rendendolo sensibile agli errori di spazio — uno spazio mal posizionato può cambiare completamente la struttura analizzata. TOML ha anche tipi nativi per data/ora e vieta le chiavi duplicate, mentre YAML usa silenziosamente l'ultimo valore quando una chiave appare due volte. TOML è generalmente preferito per la configurazione delle applicazioni, mentre YAML è più comune nei manifest Kubernetes e nelle definizioni di pipeline CI/CD dove il supporto multi-documento e gli ancoraggi/alias sono utili.
Qual è la differenza tra TOML e JSON?
JSON è un formato di scambio dati progettato per la comunicazione tra macchine. TOML è un formato di configurazione progettato per essere letto e modificato dagli esseri umani. TOML supporta i commenti (righe che iniziano con #), tipi nativi per datetime, stringhe multiriga e tabelle che riducono la profondità di annidamento. JSON non supporta i commenti, non ha un tipo data e richiede annidamenti espliciti con parentesi graffe. JSON è la scelta giusta per i payload API e l'archiviazione dei dati; TOML è la scelta giusta per i file di configurazione che gli esseri umani modificano a mano.
TOML può rappresentare tutte le strutture dati JSON?
TOML può rappresentare la maggior parte delle strutture JSON, ma ci sono casi limite. TOML non supporta i valori null — non esiste un equivalente TOML del null JSON. Le chiavi TOML devono essere stringhe, il che corrisponde alle chiavi degli oggetti JSON. Gli array TOML erano limitati a tipi omogenei in v0.5, ma TOML v1.0 consente array di tipo misto. Gli oggetti JSON profondamente annidati possono diventare prolissi in TOML perché ogni livello di annidamento richiede un'intestazione di tabella separata.
Quali progetti usano TOML per la configurazione?
Il sistema di build Cargo di Rust usa Cargo.toml come manifesto del pacchetto. Python ha adottato pyproject.toml come file di configurazione di build standard tramite PEP 518 (2016) e PEP 621 (2020). Hugo, il generatore di siti statici, usa TOML per la configurazione del sito per impostazione predefinita. InfluxDB usa TOML per la sua configurazione server. Il sistema di moduli Go ha considerato TOML ma ha scelto il proprio formato; tuttavia, molti progetti Go usano ancora TOML per la configurazione a livello applicativo tramite librerie come BurntSushi/toml e pelletier/go-toml.
Come gestisce TOML i commenti?
TOML supporta commenti a riga intera e commenti a fine riga usando il carattere #. Tutto da # fino alla fine della riga viene ignorato dal parser. I commenti non possono apparire all'interno di stringhe di base multiriga o stringhe letterali multiriga. Quando si converte TOML in JSON, i commenti vengono eliminati perché JSON non ha una sintassi per i commenti. Ciò significa che un round-trip da TOML a JSON e di ritorno a TOML perderà tutti i commenti del file originale.
Cosa sono gli array di tabelle in TOML?
Gli array di tabelle usano la sintassi [[doppie parentesi]] per definire voci ripetute della stessa struttura di tabella. Ad esempio, [[servers]] che appare due volte crea un array con due oggetti server. In JSON, questo si mappa a un array di oggetti. Gli array di tabelle sono comunemente usati per elenchi di dipendenze, definizioni di server o configurazioni di plugin dove ogni voce ha lo stesso set di chiavi.
TOML è sensibile agli spazi bianchi?
TOML non è sensibile all'indentazione. L'indentazione è puramente cosmetica e non influisce sull'analisi. Tuttavia, TOML richiede le newline per separare le coppie chiave-valore — non è possibile mettere due coppie chiave-valore sulla stessa riga (tranne all'interno delle tabelle inline). Le tabelle inline devono stare su una singola riga e non possono contenere newline. Questo design evita i bug basati sull'indentazione che sono comuni nei file YAML.
Cosa succede ai valori datetime TOML quando si converte in JSON?
JSON non ha un tipo datetime nativo, quindi i datetime TOML vengono convertiti in stringhe ISO 8601. I datetime con offset (come 2024-01-15T09:30:00Z) mantengono il loro offset di fuso orario nella rappresentazione stringa. I datetime locali, le date locali e le ore locali vengono ciascuno serializzati come stringhe senza informazioni sul fuso orario. La conversione è senza perdita nel senso che il valore originale può essere riparsato dalla stringa, ma il consumatore JSON deve sapere che queste stringhe rappresentano date anziché testo arbitrario.