Skip to content

Convertitore da TOML a JSON

Incolla il TOML e ottieni JSON istantaneamente nel browser online. Cargo.toml, pyproject.toml e config.toml pronti, date e tabelle annidate gestite bene.

Niente tracciamento Funziona nel browser Gratuito
Opzioni · 2 spazi
Rientro
0 caratteri
JSON Output
0 righe
Revisionato per conformità alla specifica TOML 1.0.0, fedeltà delle date-ora e gestione sicura dei grandi interi — Go Tools Engineering Team · Jul 2, 2026

Che cos'è TOML e perché convertirlo in JSON?

TOML (Tom's Obvious, Minimal Language) è un formato di file di configurazione creato da Tom Preston-Werner per essere non ambiguo, facile da leggere per le persone e mappabile in modo banale su una hash table. È diventato il formato di configurazione predefinito per l'ecosistema Rust (Cargo.toml), per il packaging Python moderno (pyproject.toml, standardizzato in PEP 518 e PEP 621) e per strumenti come Hugo, Netlify, Poetry e Foundry. JSON, al contrario, è il formato universale di interscambio tra macchine — ogni linguaggio lo analizza, ogni API lo parla. Convertire TOML in JSON è quindi un'operazione comune: scrivi la configurazione in un TOML leggibile, poi la converti in JSON per passarla a un programma, ispezionarla con strumenti JSON o confrontarla in una pipeline.

Questo strumento ha diversi elementi distintivi che contano per la correttezza:

**1. Fedeltà delle date-ora.** TOML ha tipi di data e ora di prima classe — offset date-time, local date-time, data locale e ora locale — che JSON non possiede affatto. I convertitori ingenui li appiattiscono tutti in timestamp ISO, così una data locale come 1979-05-27 diventa 1979-05-27T00:00:00Z, inventando silenziosamente un'ora e un fuso orario. Questo strumento conserva l'esatto tipo di TOML: le date locali restano date di calendario, le ore locali restano ore e solo gli offset date-time portano un fuso orario. Questo mantiene i tuoi dati onesti e le conversioni di andata e ritorno senza perdita.

**2. Supporto completo di TOML 1.0.0.** Tabelle annidate, chiavi con notazione a punti, tabelle inline e array di tabelle ([[section]]) sono tutti analizzati correttamente secondo la specifica TOML 1.0.0 usando la libreria smol-toml a dipendenza zero. I file Cargo.toml e pyproject.toml reali con tabelle inline e standard miste si convertono esattamente come richiede la specifica.

**3. Gestione onesta dei grandi interi.** Gli interi TOML sono a 64 bit, ma il JavaScript del browser può contenere esattamente solo interi fino a 2^53 - 1. Invece di corrompere silenziosamente un valore grande o di andare in crash, questo strumento converte al numero JSON più vicino e ti avvisa, così puoi scegliere di memorizzare il valore come stringa. Questa onestà su una limitazione fondamentale del browser è qualcosa che la maggior parte dei convertitori sorvola.

**4. Privacy al 100% basata sul browser.** Il tuo TOML — che può contenere token di registry, sorgenti di pacchetti interni o segreti di deploy — non lascia mai il tuo browser. Nessun caricamento, nessun server, nessuna registrazione. Puoi confermarlo nella scheda Rete del browser.

Hai bisogno del percorso inverso? Usa il Convertitore da JSON a TOML. Devi convertire tra altri formati di configurazione? Prova il Convertitore da JSON a YAML e il Convertitore da YAML a JSON, oppure valida e abbellisci prima il tuo output JSON con il Formattatore JSON. TOML, JSON e YAML hanno ciascuno il proprio posto: TOML per la configurazione di applicazioni modificata dalle persone, JSON per l'interscambio tra macchine e YAML per manifest di infrastruttura profondamente annidati. Questo convertitore ti permette di spostarti tra i primi due senza scrivere una sola riga di codice.

// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';

const toml = `
[package]
name = "my-app"
version = "1.0.0"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;

const data = parse(toml);
const json = JSON.stringify(data, null, 2);

console.log(json);
// {
//   "package": { "name": "my-app", "version": "1.0.0" },
//   "dependencies": {
//     "serde": { "version": "1.0", "features": ["derive"] }
//   }
// }

Caratteristiche principali

Conversione in tempo reale

L'output JSON si aggiorna istantaneamente mentre digiti o incolli TOML — senza pulsante Converti. Gli input grandi (>200 KB) passano automaticamente alla modalità manuale per mantenere il browser reattivo.

Fedeltà delle date-ora

Gli offset date-time, i local date-time, le date locali e le ore locali di TOML vengono convertiti in stringhe JSON che conservano il tipo originale — nessun timestamp di mezzanotte inventato, così le conversioni di andata e ritorno restano senza perdita.

Supporto completo di TOML 1.0.0

Tabelle annidate, chiavi con notazione a punti, tabelle inline e array di tabelle ([[section]]) sono tutti analizzati correttamente tramite il motore smol-toml a dipendenza zero, in linea con la specifica TOML 1.0.0.

Pronto per Cargo.toml e pyproject.toml

Ottimizzato per i file TOML più comuni nel mondo reale — manifest Rust e configurazioni di packaging Python — incluse tabelle inline e array di tabelle. Carica un esempio per vedere l'esatta struttura JSON.

Avvisi onesti sui grandi interi

Gli interi oltre l'intervallo sicuro di JavaScript (2^53) non possono essere rappresentati esattamente in JSON — lo strumento li converte al numero più vicino e ti avvisa, invece di corrompere silenziosamente il valore.

Privacy al 100% basata sul browser

Tutta l'analisi viene eseguita localmente nel tuo browser. Il tuo TOML — inclusi token di registry, sorgenti di pacchetti private e segreti di deploy — non viene mai caricato, memorizzato o registrato.

Esempi

Cargo.toml (Rust)

[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
criterion = "0.5"

[[bin]]
name = "my-app"
path = "src/main.rs"

Converti un manifest Cargo.toml di Rust in JSON — utile per strumenti, dashboard delle dipendenze o per passare i metadati di cargo a script che si aspettano JSON.

pyproject.toml (Python)

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "my-package"
version = "0.3.1"
requires-python = ">=3.10"
dependencies = [
  "requests>=2.31",
  "pydantic>=2.0"
]

[project.optional-dependencies]
dev = ["pytest>=8.0", "ruff>=0.4"]

[tool.ruff]
line-length = 100

Converti un pyproject.toml conforme a PEP 621 in JSON per ispezionare metadati del progetto, dipendenze e configurazione degli strumenti in modo programmatico.

netlify.toml

[build]
command = "npm run build"
publish = "dist"

[build.environment]
NODE_VERSION = "20"

[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
force = true

[[headers]]
for = "/*"

[headers.values]
X-Frame-Options = "DENY"

Converti una configurazione di build di Netlify in JSON per verificare redirect e header o generare la configurazione equivalente per un'altra piattaforma.

Hugo config.toml

baseURL = "https://example.org"
languageCode = "en-us"
title = "My Hugo Site"
theme = "ananke"

[params]
description = "A static site built with Hugo"
mainSections = ["posts", "docs"]

[[menu.main]]
name = "Blog"
url = "/posts/"
weight = 1

[[menu.main]]
name = "About"
url = "/about/"
weight = 2

Converti il config.toml di un sito Hugo in JSON per migrare le impostazioni, confrontare la configurazione o alimentare un'interfaccia di configurazione.

rustfmt.toml

edition = "2021"
max_width = 100
hard_tabs = false
tab_spaces = 4
newline_style = "Unix"
use_small_heuristics = "Default"
reorder_imports = true
reorder_modules = true

Converti un rustfmt.toml piatto in JSON — un buon esempio di come le coppie chiave-valore di primo livello (senza tabelle) si mappano direttamente su un oggetto JSON.

Config di app con date e array di tabelle

title = "Deployment Log"
last_deployed = 1979-05-27T07:32:00Z
release_date = 1979-05-27
maintenance_window = 02:00:00

[[servers]]
name = "alpha"
ip = "10.0.0.1"
ports = [8001, 8002]

[[servers]]
name = "beta"
ip = "10.0.0.2"
ports = [9001]

Mostra come le date-ora native di TOML (offset date-time, data locale, ora locale) e gli array di tabelle si convertono in modo pulito in stringhe e array JSON.

Come si usa

  1. 1

    Incolla il tuo TOML

    Inserisci o incolla il tuo TOML nel campo di input qui sopra. Puoi anche fare clic su 'Carica esempio' per provare un vero Cargo.toml, pyproject.toml o una configurazione di deploy.

  2. 2

    Guarda l'output JSON in tempo reale

    Il JSON compare istantaneamente nel pannello di output. Regola l'opzione Rientro (2 o 4 spazi) per adattarla al formato di destinazione. Date, tabelle e array di tabelle vengono gestiti automaticamente.

  3. 3

    Copia o scarica

    Fai clic su Copia per copiare il JSON negli appunti o su Scarica per salvarlo come file .json pronto per il tuo programma, la tua API o i tuoi strumenti.

Errori comuni con TOML

Valori stringa senza virgolette

In TOML, i valori stringa devono essere tra virgolette. Una parola nuda a destra del segno di uguale è valida solo per booleani (true/false), numeri, date o come parte di un array. Racchiudi le stringhe tra virgolette doppie o singole.

✗ Errato
name = my-app
✓ Corretto
name = "my-app"

Chiavi duplicate

TOML vieta di definire la stessa chiave due volte all'interno della stessa tabella e vieta di ridefinire una tabella già definita. È un errore comune quando si uniscono frammenti di configurazione. Ogni chiave e tabella deve essere univoca.

✗ Errato
name = "a"
name = "b"
✓ Corretto
name = "a"
alt_name = "b"

Formato data-ora non valido

Le date-ora di TOML seguono l'RFC 3339. Una data richiede un anno completo di 4 cifre, un mese di 2 cifre e un giorno di 2 cifre; una data-ora richiede un separatore T (o uno spazio). Le date malformate non vengono analizzate.

✗ Errato
released = 2026-7-2
✓ Corretto
released = 2026-07-02

Parentesi di chiusura mancante

Array, tabelle inline e intestazioni di tabella devono essere chiusi. Un [ o { non chiuso produce un errore di analisi che indica la riga e la colonna in cui è stato rilevato il problema.

✗ Errato
ports = [8001, 8002
✓ Corretto
ports = [8001, 8002]

Intero oltre l'intervallo sicuro

Gli interi TOML sono a 64 bit, ma i numeri JSON nel browser sono limitati a 2^53 - 1. I valori oltre tale limite vengono arrotondati durante la conversione e viene mostrato un avviso. Memorizza gli interi molto grandi come stringhe tra virgolette per mantenerli esatti.

✗ Errato
snowflake = 1420070400000000000
✓ Corretto
snowflake = "1420070400000000000"

Ridefinire una tabella

Una volta definita una tabella come [servers], non puoi riaprirla con la stessa intestazione. Per avere più voci, usa invece un array di tabelle ([[servers]]), che diventa un array JSON di oggetti.

✗ Errato
[servers]
name = "a"
[servers]
name = "b"
✓ Corretto
[[servers]]
name = "a"
[[servers]]
name = "b"

Casi d'uso comuni

Metadati Cargo di Rust
Converti Cargo.toml in JSON per costruire dashboard delle dipendenze, verificare versioni e feature dei crate o passare i dati del manifest a script e CI che si aspettano JSON anziché TOML.
Configurazione di progetto Python
Converti pyproject.toml in JSON per ispezionare i metadati di progetto PEP 621, estrarre elenchi di dipendenze o alimentare strumenti che leggono la configurazione di packaging in modo programmatico.
Ispezione della configurazione di deploy
Converti netlify.toml, foundry.toml o altre configurazioni di piattaforma in JSON per verificare redirect, header e impostazioni di build, o per generare una configurazione equivalente per un'altra piattaforma.
Migrazione del formato di configurazione
Converti la configurazione di applicazione TOML in JSON quando passi a un sistema che preferisce JSON, o come passaggio intermedio prima di trasformarla ulteriormente con strumenti JSON come jq.
Impostazioni di siti statici
Converti il config.toml di Hugo in JSON per migrare le impostazioni del sito, confrontare la configurazione tra ambienti o costruire un'interfaccia di impostazioni basata su JSON.
Input per API e script
Trasforma il TOML scritto dalle persone in JSON che un'API REST, una funzione serverless o uno script di automazione può consumare direttamente, collegando la configurazione leggibile e l'input per le macchine.

Dettagli tecnici

Analisi TOML 1.0.0 tramite smol-toml
Il TOML viene analizzato con la libreria smol-toml, un parser a dipendenza zero pienamente conforme a TOML 1.0.0. Gestisce correttamente tabelle annidate, chiavi con notazione a punti, tabelle inline, array di tabelle, stringhe multi-riga e tutti e quattro i tipi di data-ora, e segnala gli errori di analisi con la posizione di riga e colonna.
Date-ora senza perdita e gestione sicura degli interi
Le date-ora di TOML vengono serializzate in stringhe JSON che conservano il loro tipo esatto (offset date-time, local date-time, data locale, ora locale). Gli interi oltre l'intervallo sicuro di JavaScript (2^53 - 1) vengono promossi a BigInt durante l'analisi, poi convertiti nel numero JSON più vicino con un avviso di precisione, così il TOML valido non fallisce mai la conversione.
100% basato sul browser — nessun caricamento, nessun server
Tutta l'elaborazione avviene nel motore JavaScript del tuo browser. Nessun dato viene trasmesso in alcun momento. Gli input più grandi di 200 KB passano dalla modalità live a quella manuale (un clic esplicito su Converti) per mantenere l'interfaccia reattiva.

Buone pratiche

Memorizza gli interi molto grandi come stringhe
Se il tuo TOML ha interi oltre 2^53 - 1 (Snowflake ID, timestamp in nanosecondi, contatori grandi), racchiudili tra virgolette come stringhe prima di convertire. I numeri JSON nel browser non possono contenerli esattamente e lo strumento ti avviserà quando deve arrotondare.
Preferisci il rientro di 2 spazi per l'output JSON
Il rientro di due spazi è la convenzione più diffusa per JSON e produce un output pulito e leggibile che si integra bene con la maggior parte dei formattatori e degli strumenti di diff. Riserva il rientro di 4 spazi a quando una linea guida di stile lo richiede.
Valida l'output JSON prima di usarlo
Dopo la conversione, se prevedi di modificare a mano il JSON o di passarlo a qualcosa di rigoroso, controllalo con il nostro Formattatore JSON per confermare che sia valido e formattato in modo coerente.
Conserva separatamente i commenti TOML
JSON non ha una sintassi per i commenti, quindi i commenti # di TOML vengono eliminati durante la conversione. Se i commenti sono documentazione importante, conserva il TOML originale nel controllo di versione accanto al JSON generato.
Usa array di tabelle per le sezioni ripetute
Quando hai più sezioni simili (server, redirect, bin), scrivile come array di tabelle ([[section]]) invece di ripetere [section]. Si convertono in un array JSON di oggetti pulito invece di causare un errore di tabella duplicata.

Domande frequenti

Come si converte TOML in JSON online?
Incolla il tuo TOML nel campo di input qui sopra. Lo strumento lo analizza e produce JSON istantaneamente nel browser — senza premere alcun pulsante. Puoi alternare il rientro del JSON tra 2 e 4 spazi nel pannello Opzioni. Quando il JSON compare nell'area di output, fai clic su Copia per copiarlo negli appunti o su Scarica per salvarlo come file .json. Tutto viene eseguito localmente, quindi il tuo TOML non lascia mai il tuo dispositivo.
Che cos'è TOML e perché convertirlo in JSON?
TOML (Tom's Obvious, Minimal Language) è un formato di file di configurazione progettato per essere facile da leggere e scrivere per le persone, con una semantica chiara che si mappa in modo univoco su una hash table. Alimenta il Cargo.toml di Rust, il pyproject.toml di Python, Hugo, Netlify e molti altri strumenti. Converti TOML in JSON quando devi passare una configurazione a un programma o a un'API che si aspetta JSON, ispezionare un file di configurazione in modo programmatico, confrontare due configurazioni con strumenti JSON o alimentare un'interfaccia. Il TOML è scritto dalle persone; il JSON è consumato dalle macchine — questo convertitore collega i due mondi.
Come vengono rappresentate in JSON le date e le ore di TOML?
JSON non ha un tipo di data nativo, quindi le date-ora di TOML vengono convertite in stringhe. Questo strumento conserva l'esatto tipo di data di TOML: un offset date-time come 1979-05-27T07:32:00Z diventa "1979-05-27T07:32:00.000Z", una data locale come 1979-05-27 rimane "1979-05-27" (non viene espansa in un timestamp completo) e un'ora locale come 07:32:00 diventa "07:32:00.000". Molti convertitori appiattiscono erroneamente le date locali in timestamp UTC a mezzanotte — questo mantiene il significato originale, così le conversioni di andata e ritorno sono senza perdita.
Questo strumento gestisce Cargo.toml e pyproject.toml?
Sì. Cargo.toml e pyproject.toml sono i due file TOML più comuni nel mondo reale ed entrambi sono pienamente supportati, incluse le tabelle annidate ([dependencies], [tool.ruff]), le tabelle inline (serde = { version = "1.0", features = ["derive"] }) e gli array di tabelle ([[bin]]). Carica l'esempio Cargo.toml o pyproject.toml qui sopra per vedere l'esatta struttura JSON prodotta. Utile per dashboard di build, audit delle dipendenze o qualsiasi script che legge i metadati del progetto come JSON.
Come vengono convertiti le tabelle e gli array di tabelle di TOML?
Un'intestazione di tabella TOML come [owner] diventa un oggetto JSON annidato sotto la chiave "owner". Una tabella con notazione a punti come [tool.ruff] diventa oggetti annidati: { "tool": { "ruff": { ... } } }. Un array di tabelle scritto con doppie parentesi — [[servers]] ripetuto — diventa un array JSON di oggetti: { "servers": [ { ... }, { ... } ] }. Le tabelle inline ({ a = 1, b = 2 }) diventano semplici oggetti JSON. La conversione segue esattamente la specifica TOML 1.0.0.
Cosa succede agli interi molto grandi quando si converte TOML in JSON?
TOML supporta interi con segno a 64 bit, ma JavaScript (e quindi il JSON nel browser) può rappresentare esattamente solo interi fino a 2^53 - 1 (9007199254740991). Se il tuo TOML contiene un intero più grande — per esempio uno Snowflake ID o un timestamp in nanosecondi — non può essere rappresentato senza perdita come numero JSON e il valore viene arrotondato, con un avviso mostrato. È una limitazione fondamentale del JavaScript del browser che riguarda ogni convertitore basato su browser. Per una conservazione esatta, mantieni tali valori come stringhe tra virgolette nel tuo TOML.
I miei dati TOML vengono inviati a qualche server?
No. Tutta l'analisi e la conversione avvengono interamente nel tuo browser tramite JavaScript. Il tuo TOML non viene mai caricato, mai memorizzato e mai registrato. Questo rende lo strumento sicuro per file Cargo.toml con token di registry privati, pyproject.toml con indici di pacchetti interni, configurazioni di deploy con segreti e qualsiasi altra configurazione sensibile. Puoi verificarlo aprendo la scheda Rete del browser — incollare TOML non genera alcuna richiesta di rete.
Posso riconvertire JSON in TOML?
Sì. Usa il Convertitore da JSON a TOML complementare per la direzione inversa, oppure fai clic sul pulsante Inverti direzione in cima allo strumento per scambiare input e output sul posto. Nota che la conversione da JSON a TOML ha alcuni vincoli che quella da TOML a JSON non ha — il livello superiore deve essere un oggetto e i valori null non hanno equivalente in TOML — che lo strumento da JSON a TOML spiega e gestisce per te.
Come si converte TOML in JSON dalla riga di comando?
Un'opzione popolare è la CLI 'toml' basata su Rust o lo strumento Go 'yj' (yj -tj legge TOML e scrive JSON). Con Python 3.11+ puoi eseguire: python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer)))" < config.toml. Con Node.js: npx smol-toml (o un piccolo script che usa la libreria smol-toml). Per un'operazione rapida nel browser senza installare nulla, questo strumento è la via più veloce.
Come si converte TOML in JSON in Python, Rust o Node.js?
In Python 3.11+: import tomllib, json; data = tomllib.load(open('config.toml','rb')); json.dump(data, open('config.json','w')). In Rust: usa i crate toml e serde_json — let value: toml::Value = toml::from_str(&text)?; let json = serde_json::to_string_pretty(&value)?. In Node.js: import { parse } from 'smol-toml'; const data = parse(text); const json = JSON.stringify(data, null, 2) — è la stessa libreria e lo stesso approccio usati da questo strumento.
Il convertitore conserva l'ordine delle chiavi e cosa succede ai commenti?
L'ordine delle chiavi all'interno di una tabella viene conservato: le chiavi compaiono nell'output JSON nello stesso ordine in cui appaiono nel tuo TOML. I commenti, invece, vengono eliminati — JSON non ha una sintassi per i commenti, quindi i commenti # di TOML non possono sopravvivere alla conversione. Se devi conservare la documentazione, aggiungila come campo compatibile con JSON o mantieni il TOML originale accanto al JSON generato.
C'è un limite alla dimensione del file per l'input TOML?
Non c'è un limite rigido, ma gli input oltre i 200 KB passano dalla conversione live alla modalità manuale: compare un pulsante Converti e la conversione avviene solo quando fai clic, mantenendo il browser reattivo. I file di configurazione tipici — anche grandi workspace Cargo.toml o configurazioni di deploy multi-ambiente — si convertono in ben meno di 50 millisecondi.

Strumenti correlati

Vedi tutti gli strumenti →