Utilia

Pretvornik TOML v JSON

Pretvori TOML v JSON in JSON v TOML v brskalniku. Podpira tabele, polja tabel, datume in 64-bitna cela števila. Nič se ne naloži na strežnik.

Pretvorba

Kako pretvoriti TOML v JSON

  1. Izberi smer: TOML → JSON (privzeto) ali JSON → TOML.
  2. Prilepi podatke ali klikni Odpri datoteko, da naložiš datoteko .toml ali .json (do 10 MB).
  3. Pri TOML → JSON izberi Zamik (2 ali 4 presledki) in se odloči, ali obkljukaš Velika cela števila kot nizi. Pri JSON → TOML pusti ali odkljukaj Izpusti vrednosti null.
  4. Obkljukaj Razvrsti ključe, če želiš vsako tabelo urejeno po abecedi.
  5. Rezultat se posodablja med tipkanjem; Pretvori ga po potrebi požene znova. Napake pokažejo vrstico in stolpec težave.
  6. Rezultat kopiraj ali prenesi. Zamenjaj smer premakne izhod v vhod, da ga pretvoriš nazaj.

TOML in JSON drug ob drugem

TOML (Tom’s Obvious Minimal Language) je konfiguracijski format za Cargo.toml v Rustu, pyproject.toml v Pythonu, strani Hugo in Netlify ter številna orodja ukazne vrstice. Zasnovan je tako, da ga ljudje berejo in urejajo, neposredno pa se preslika v drevo, podobno JSON, iz tabel (objektov), polj in vrednosti.

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

[[bin]]
name = "cli"

postane

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Glava [table] postane objekt JSON, pikasti ključi, kot je a.b.c = 1, pa gnezdeni objekti.
  • Polje tabel [[bin]] postane polje objektov JSON.
  • Vgrajene tabele { x = 1 } in polja delujejo, kot pričakuješ. Komentarji so izpuščeni, saj jih JSON nima.

Kje se formata razlikujeta

Datumi in časi. TOML ima štiri izvorne tipe datuma in časa, JSON nobenega. Pretvornik jih zapiše kot nize ISO 8601 in ohrani njihovo vrsto: datum in čas z odmikom ostane 1979-05-27T07:32:00.000-08:00, lokalni datum ostane 1979-05-27, lokalni čas pa 07:32:00.000. Delčki sekunde so ohranjeni do milisekunde. Pretvorba nazaj v TOML da navadne nize, ker v JSON nič ne označuje, da gre za datume.

Cela števila. Cela števila TOML so 64-bitna s predznakom, od −9 223 372 036 854 775 808 do 9 223 372 036 854 775 807. Števila JavaScripta, ki jih uporablja večina razčlenjevalnikov JSON, so natančna le do 2^53 (9 007 199 254 740 991). Večja cela števila TOML so zapisana z vsemi števkami, kar je veljaven JSON, vendar jih program, ki jih bere kot števila z dvojno natančnostjo, zaokroži; obkljukaj Velika cela števila kot nizi, da to preprečiš. Celo število zunaj 64-bitnega obsega je zavrnjeno, kot zahteva specifikacija TOML.

Posebna števila s plavajočo vejico. inf, -inf in nan v JSON nimajo oblike, zato so zapisani kot nizi "inf", "-inf" in "nan".

JSON → TOML. Dokument TOML je vedno tabela, zato mora biti JSON na vrhnji ravni objekt. TOML nima vrednosti null: privzeto so vrednosti null izpuščene, sporočilo pa pove, koliko jih je; odkljukaj Izpusti vrednosti null, da namesto tega dobiš napako z mestom prve. JSON ne loči 1 od 1.0, zato cela števila postanejo cela števila TOML, števila, prevelika za 64 bitov, pa števila s plavajočo vejico. V novejših brskalnikih velika cela števila v tvojem JSON ohranijo natančne števke.

Pogosta vprašanja

Ali se moja konfiguracija kam pošilja?

Ne. Pretvorba teče povsem v tvojem brskalniku, zato ključi API ali skrivnosti v tvojih konfiguracijskih datotekah nikoli ne zapustijo tvojega računalnika.

Zakaj se je vrstni red mojih ključev v izhodu TOML spremenil?

TOML zahteva, da v vsaki tabeli navadni pari ključ/vrednost pridejo pred podtabelami, zato pretvornik najprej zapiše vrednosti, nato [tabele], nato [[polja tabel]]. Podatki so isti.

Ali se komentarji TOML ohranijo?

Ne. JSON nima komentarjev, zato se pri pretvorbi TOML → JSON izgubijo, na poti nazaj pa ni ničesar, kar bi se obnovilo.

Katera različica TOML je podprta?

TOML 1.0, vključno s pikastimi ključi, vgrajenimi tabelami, polji tabel, šestnajstiškimi, osmiškimi in dvojiškimi celimi števili ter vsemi štirimi tipi datuma in časa.

Zakaj je moj datum v JSON niz?

JSON nima tipa za datum. Nizi ISO 8601 so običajna konvencija in jih večina jezikov lahko neposredno razčleni.