Utilia

Prevodník TOML na JSON

Prevádzaj TOML na JSON a JSON na TOML v prehliadači. Zvláda tabuľky, polia tabuliek, dátumy a 64-bitové celé čísla. Nič sa nenahráva na server.

Konverzia

Ako previesť TOML na JSON

  1. Vyber smer: TOML → JSON (predvolený) alebo JSON → TOML.
  2. Vlož údaje, alebo klikni na Otvoriť súbor a načítaj súbor .toml alebo .json (do 10 MB).
  3. Pri TOML → JSON vyber Odsadenie (2 alebo 4 medzery) a rozhodni, či zaškrtneš Veľké celé čísla ako reťazce. Pri JSON → TOML ponechaj alebo odškrtni Vynechať hodnoty null.
  4. Zaškrtni Zoradiť kľúče, ak chceš mať každú tabuľku zoradenú podľa abecedy.
  5. Výsledok sa aktualizuje počas písania; Konvertovať ho spustí znova na požiadanie. Chyby ukazujú riadok a stĺpec problému.
  6. Výsledok skopíruj alebo stiahni. Obrátiť smer presunie výstup do vstupu, aby si ho previedol späť.

Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.

TOML a JSON vedľa seba

TOML (Tom’s Obvious Minimal Language) je konfiguračný formát súborov Cargo.toml v Ruste, pyproject.toml v Pythone, stránok Hugo a Netlify a mnohých nástrojov príkazového riadka. Je navrhnutý tak, aby ho ľudia čítali a upravovali, a priamo sa mapuje na strom podobný JSON z tabuliek (objektov), polí a hodnôt.

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

[[bin]]
name = "cli"

sa zmení na

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Hlavička [table] sa zmení na objekt JSON a kľúče s bodkou, napríklad a.b.c = 1, na vnorené objekty.
  • Pole tabuliek [[bin]] sa zmení na pole objektov JSON.
  • Vložené tabuľky { x = 1 } a polia fungujú tak, ako by si čakal. Komentáre sa vynechajú, keďže JSON žiadne nemá.

Kde sa oba formáty líšia

Dátumy a časy. TOML má štyri natívne typy dátumu a času; JSON žiadny. Prevodník ich zapisuje ako reťazce ISO 8601 a zachováva ich druh: dátum a čas s posunom zostane 1979-05-27T07:32:00.000-08:00, lokálny dátum zostane 1979-05-27 a lokálny čas zostane 07:32:00.000. Zlomky sekúnd sa zachovávajú na milisekundy. Pri spätnom prevode na TOML vzniknú obyčajné reťazce, pretože nič v JSON ich neoznačuje ako dátumy.

Celé čísla. Celé čísla TOML sú 64-bitové so znamienkom, od −9 223 372 036 854 775 808 do 9 223 372 036 854 775 807. Čísla JavaScriptu, ktoré používa väčšina parserov JSON, sú presné len do 2^53 (9 007 199 254 740 991). Väčšie celé čísla TOML sa zapíšu so všetkými číslicami, čo je platný JSON, ale program, ktorý ich číta ako čísla double, ich zaokrúhli; tomu zabrání zaškrtnutie Veľké celé čísla ako reťazce. Celé číslo mimo 64-bitového rozsahu sa odmietne, ako vyžaduje špecifikácia TOML.

Špeciálne desatinné čísla. inf, -inf a nan nemajú v JSON podobu, preto sa zapisujú ako reťazce "inf", "-inf" a "nan".

JSON → TOML. Dokument TOML je vždy tabuľka, takže JSON musí byť na najvyššej úrovni objekt. TOML nemá null: predvolene sa hodnoty null vynechávajú a hlásenie povie, koľko ich bolo; odškrtni Vynechať hodnoty null, ak chceš namiesto toho chybu s umiestnením prvej z nich. JSON nerozlišuje 1 od 1.0, takže celé čísla sa stanú celými číslami TOML a čísla príliš veľké pre 64 bitov sa stanú desatinnými. V nedávnych prehliadačoch si veľké celé čísla v tvojom JSON zachovajú presné číslice.

Často kladené otázky

Odosiela sa moja konfigurácia niekam?

Nie. Konverzia beží výhradne v tvojom prehliadači, takže kľúče API ani tajomstvá v konfiguračných súboroch neopustia tvoj počítač.

Prečo sa v mojom výstupe TOML zmenilo poradie kľúčov?

TOML vyžaduje, aby obyčajné dvojice kľúč/hodnota stáli v každej tabuľke pred podtabuľkami, takže prevodník zapisuje najprv hodnoty, potom [tabuľky] a potom [[polia tabuliek]]. Údaje sú rovnaké.

Zachovávajú sa komentáre TOML?

Nie. JSON komentáre nemá, takže sa pri konverzii TOML → JSON strácajú a pri spätnom prevode niet čo obnoviť.

Ktorá verzia TOML sa podporuje?

TOML 1.0, vrátane kľúčov s bodkou, vložených tabuliek, polí tabuliek, hexadecimálnych, osmičkových a binárnych celých čísel a všetkých štyroch typov dátumu a času.

Prečo je môj dátum v JSON reťazec?

JSON nemá typ dátumu. Reťazce ISO 8601 sú obvyklou konvenciou a väčšina jazykov ich dokáže priamo spracovať.