Utilia

Convertitore da TOML a JSON

Converti TOML in JSON e JSON in TOML nel tuo browser. Gestisce tabelle, array di tabelle, date e interi a 64 bit. Non viene caricato nulla.

Conversione

Come convertire TOML in JSON

  1. Scegli la direzione: TOML → JSON (predefinita) oppure JSON → TOML.
  2. Incolla i dati, oppure premi Apri un file per caricare un file .toml o .json (fino a 10 MB).
  3. Per TOML → JSON, scegli l’Indentazione (2 o 4 spazi) e decidi se spuntare Interi grandi come stringhe. Per JSON → TOML, lascia o togli Ometti i valori null.
  4. Spunta Ordina le chiavi se vuoi ogni tabella in ordine alfabetico.
  5. Il risultato si aggiorna mentre scrivi; Converti rilancia la conversione su richiesta. Gli errori indicano la riga e la colonna del problema.
  6. Copia o scarica il risultato. Inverti direzione sposta l’output nell’input per riconvertirlo.

TOML e JSON a confronto

TOML (Tom’s Obvious Minimal Language) è il formato di configurazione di Cargo.toml in Rust, di pyproject.toml in Python, dei siti Hugo e Netlify e di molti strumenti da riga di comando. È pensato per essere letto e modificato dalle persone e corrisponde direttamente a un albero simile al JSON, fatto di tabelle (oggetti), array e valori.

[package]
name = "demo"
version = "0.1.0"

[[bin]]
name = "cli"

diventa

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Un’intestazione [tabella] diventa un oggetto JSON, e le chiavi puntate come a.b.c = 1 diventano oggetti annidati.
  • Un array di tabelle, [[bin]], diventa un array JSON di oggetti.
  • Le tabelle inline { x = 1 } e gli array funzionano come ti aspetti. I commenti vengono eliminati, perché il JSON non li prevede.

Dove i due formati differiscono

Date e orari. TOML ha quattro tipi nativi di data/ora; JSON nessuno. Il convertitore li scrive come stringhe ISO 8601 mantenendone la natura: una data/ora con offset resta 1979-05-27T07:32:00.000-08:00, una data locale resta 1979-05-27 e un orario locale resta 07:32:00.000. Le frazioni di secondo sono conservate al millisecondo. Riconvertendo in TOML si ottengono semplici stringhe, perché nel JSON nulla le identifica come date.

Interi. Gli interi TOML sono a 64 bit con segno, da −9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. I numeri JavaScript, usati dalla maggior parte dei parser JSON, sono esatti solo fino a 2^53 (9.007.199.254.740.991). Gli interi TOML più grandi vengono scritti con tutte le cifre, il che è JSON valido, ma un programma che li legge come double li arrotonderà; spunta Interi grandi come stringhe per evitarlo. Un intero fuori dall’intervallo a 64 bit viene rifiutato, come richiede la specifica TOML.

Float speciali. inf, -inf e nan non hanno una forma JSON, quindi vengono scritti come stringhe "inf", "-inf" e "nan".

JSON → TOML. Un documento TOML è sempre una tabella, quindi il JSON deve essere un oggetto al livello più alto. TOML non ha null: per impostazione predefinita i valori null vengono omessi e un messaggio ti dice quanti sono; togli Ometti i valori null per ottenere invece un errore con la posizione del primo. Il JSON non distingue 1 da 1.0, quindi i numeri interi diventano interi TOML e i numeri troppo grandi per 64 bit diventano float. Nei browser recenti, gli interi grandi del tuo JSON conservano le cifre esatte.

Domande frequenti

La mia configurazione viene inviata da qualche parte?

No. La conversione avviene interamente nel tuo browser, quindi chiavi API o segreti presenti nei tuoi file di configurazione non lasciano mai il tuo computer.

Perché l'ordine delle chiavi è cambiato nell'output TOML?

TOML richiede che in ogni tabella le semplici coppie chiave/valore vengano prima delle sottotabelle, quindi il convertitore scrive prima i valori, poi le [tabelle], poi gli [[array di tabelle]]. I dati sono gli stessi.

I commenti TOML vengono conservati?

No. Il JSON non ha commenti, quindi vanno persi nella conversione TOML → JSON e non ce ne sono da ripristinare al ritorno.

Quale versione di TOML è supportata?

TOML 1.0, comprese chiavi puntate, tabelle inline, array di tabelle, interi esadecimali, ottali e binari e tutti e quattro i tipi di data/ora.

Perché nel JSON la mia data è una stringa?

Il JSON non ha un tipo data. Le stringhe ISO 8601 sono la convenzione abituale e la maggior parte dei linguaggi le interpreta direttamente.