Utilia

Convertor TOML în JSON

Convertește TOML în JSON și JSON în TOML în browser. Acceptă tabele, liste de tabele, date calendaristice și numere întregi pe 64 de biți. Nu se încarcă nimic.

Conversie

Cum convertești TOML în JSON

  1. Alege direcția: TOML → JSON (implicită) sau JSON → TOML.
  2. Lipește datele sau apasă Deschide fișierul ca să încarci un fișier .toml sau .json (până la 10 MB).
  3. Pentru TOML → JSON, alege Indentare (2 sau 4 spații) și hotărăște dacă bifezi Numere întregi mari ca șiruri. Pentru JSON → TOML, păstrează sau debifează Omite valorile null.
  4. Bifează Sortează cheile dacă vrei fiecare tabel ordonat alfabetic.
  5. Rezultatul se actualizează pe măsură ce scrii; Convertește îl rulează din nou la cerere. Erorile arată linia și coloana problemei.
  6. Copiază sau descarcă rezultatul. Inversează direcția mută rezultatul în intrare ca să îl convertești înapoi.

TOML și JSON alăturate

TOML (Tom’s Obvious Minimal Language) este formatul de configurare din spatele Cargo.toml în Rust, pyproject.toml în Python, al site-urilor Hugo și Netlify și al multor instrumente din linia de comandă. Este conceput pentru a fi citit și editat de oameni și se transpune direct într-un arbore asemănător JSON de tabele (obiecte), liste și valori.

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

[[bin]]
name = "cli"

devine

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Un antet [table] devine un obiect JSON, iar cheile cu punct, precum a.b.c = 1, devin obiecte imbricate.
  • O listă de tabele, [[bin]], devine o listă JSON de obiecte.
  • Tabelele inline { x = 1 } și listele funcționează cum te aștepți. Comentariile sunt eliminate, deoarece JSON nu are comentarii.

Unde diferă cele două formate

Date și ore. TOML are patru tipuri native de dată-oră; JSON nu are niciunul. Convertorul le scrie ca șiruri ISO 8601 și le păstrează varianta: o dată-oră cu decalaj rămâne 1979-05-27T07:32:00.000-08:00, o dată locală rămâne 1979-05-27, iar o oră locală rămâne 07:32:00.000. Fracțiile de secundă sunt păstrate până la milisecundă. La conversia înapoi în TOML rezultă șiruri simple, pentru că nimic din JSON nu le marchează drept date.

Numere întregi. Numerele întregi TOML sunt cu semn, pe 64 de biți, de la −9.223.372.036.854.775.808 la 9.223.372.036.854.775.807. Numerele JavaScript, folosite de majoritatea analizoarelor JSON, sunt exacte doar până la 2^53 (9.007.199.254.740.991). Numerele întregi TOML mai mari sunt scrise cu toate cifrele, ceea ce este JSON valid, dar un program care le citește ca numere în virgulă mobilă le va rotunji; bifează Numere întregi mari ca șiruri ca să eviți asta. Un număr întreg în afara intervalului pe 64 de biți este respins, așa cum cere specificația TOML.

Numere speciale în virgulă mobilă. inf, -inf și nan nu au formă în JSON, așa că sunt scrise ca șirurile "inf", "-inf" și "nan".

JSON → TOML. Un document TOML este întotdeauna un tabel, deci JSON-ul trebuie să fie un obiect la nivelul de sus. TOML nu are null: implicit, valorile null sunt omise, iar un mesaj îți spune câte; debifează Omite valorile null ca să primești în schimb o eroare cu locul primei valori. JSON nu face diferența între 1 și 1.0, deci numerele întregi devin numere întregi TOML, iar numerele prea mari pentru 64 de biți devin numere în virgulă mobilă. În browserele recente, numerele întregi mari din JSON-ul tău își păstrează cifrele exacte.

Întrebări frecvente

Este configurația mea trimisă undeva?

Nu. Conversia rulează integral în browserul tău, deci cheile API sau secretele din fișierele tale de configurare nu părăsesc niciodată calculatorul tău.

De ce s-a schimbat ordinea cheilor în rezultatul TOML?

TOML cere ca perechile simple cheie/valoare să apară înaintea subtabelelor din fiecare tabel, așa că convertorul scrie mai întâi valorile, apoi [tabelele], apoi [[listele de tabele]]. Datele sunt aceleași.

Sunt păstrate comentariile TOML?

Nu. JSON nu are comentarii, deci ele se pierd la conversia TOML → JSON și nu mai există nimic de restaurat la întoarcere.

Ce versiune de TOML este acceptată?

TOML 1.0, inclusiv chei cu punct, tabele inline, liste de tabele, numere întregi hexazecimale, octale și binare și toate cele patru tipuri de dată-oră.

De ce este data mea un șir în JSON?

JSON nu are tip de dată. Șirurile ISO 8601 sunt convenția obișnuită, iar majoritatea limbajelor le pot analiza direct.