Vai al contenuto

Conversione del formato da JSON a TOML — Numio

Converte un oggetto JSON in TOML. Gli oggetti annidati diventano sezioni [table], gli array di oggetti diventano [[array of tables]] e le chiavi con valori null vengono scartate perché TOML non ha null.

Trasformazione di una configurazione JSON nella sintassi di configurazione pyproject.toml, Cargo.toml, wrangler.toml o Hugo.

JSON

Quando usarlo

  • Trasformazione di una configurazione JSON nella sintassi di configurazione pyproject.toml, Cargo.toml, wrangler.toml o Hugo.
  • Spostamento delle impostazioni generate da uno script come JSON in un file di configurazione basato su TOML.

Come si usa

  1. Incolla un oggetto JSON (la radice deve essere un oggetto, non un array) nell'editor di sinistra o usa il pulsante carica file per aprire un file UTF-8.
  2. Controlla TOML a destra: le chiavi scalari vengono prima, poi le sezioni [table] e [[array]].
  3. Copia il risultato, quindi confrontalo con le chiavi documentate dello strumento di destinazione prima di sostituire la configurazione.

Oggetto JSON

{
  "title": "My App",
  "port": 8080,
  "debug": false,
  "owner": { "name": "Ada", "since": "2024-01-05T10:00:00Z" },
  "servers": [
    { "host": "a.example.com", "weight": 3 },
    { "host": "b.example.com", "weight": 1 }
  ],
  "ports": [80, 443]
}

TOML

title = "My App"
port = 8_080
debug = false
ports = [ 80, 443 ]

[owner]
name = "Ada"
since = "2024-01-05T10:00:00Z"

[[servers]]
host = "a.example.com"
weight = 3

[[servers]]
host = "b.example.com"
weight = 1

Dettagli e limiti

I numeri interi pari o superiori a 1000 vengono separati da un carattere di sottolineatura (8080 diventa 8_080). Questo è TOML valido e analizza lo stesso numero.

Le stringhe di data rimangono stringhe tra virgolette; JSON non ha un tipo di data, quindi non vengono prodotti valori data/ora TOML.

Le chiavi con valori null vengono omesse automaticamente e 1.0 in JSON viene scritto come numero intero 1.

Viene eseguito nel tuo browser con @iarna/toml. Un elenco che mescola oggetti con altri valori viene rifiutato perché gli array di tabelle TOML non possono contenerli. Le sottotabelle sono rientrate di due spazi; TOML lo ignora.

FAQ

Posso convertire un array JSON alla radice?

No. Un documento TOML deve essere una tabella, quindi la pagina spiega che il JSON è un array e suggerisce di racchiuderlo in un oggetto, ad esempio {"items": [...]}.

Cosa succede ai valori nulli?

La chiave viene lasciata cadere. {"a": null} produce un output vuoto. Utilizza una stringa vuota o rimuovi deliberatamente la chiave se il target se lo aspetta.

Perché i numeri contengono trattini bassi?

Il serializzatore formatta numeri interi di grandi dimensioni con separatori di cifre _, consentito dalle specifiche TOML. Qualsiasi parser TOML legge 8_080 come 8080.

Specifiche e riferimenti