Utilia

TOML–JSON konvertáló

Alakíts TOML-t JSON-ná és JSON-t TOML-lá a böngésződben. Kezeli a táblákat, a dátumokat és a 64 bites egész számokat. Semmi nem kerül feltöltésre.

Konvertálás

Hogyan konvertálj TOML-t JSON-ná

  1. Válaszd ki az irányt: TOML → JSON (az alapértelmezett) vagy JSON → TOML.
  2. Illeszd be az adatokat, vagy kattints a Fájl megnyitása gombra egy .toml vagy .json fájl betöltéséhez (legfeljebb 10 MB).
  3. TOML → JSON esetén válaszd ki a Behúzást (2 vagy 4 szóköz), és döntsd el, bejelölöd-e a Nagy egész számok sztringként opciót. JSON → TOML esetén hagyd bejelölve vagy vedd ki a Null értékek kihagyása jelölést.
  4. Jelöld be a Kulcsok rendezése opciót, ha minden táblát ábécérendbe szeretnél rendezni.
  5. Az eredmény gépelés közben frissül; a Konvertálás kérésre újra lefuttatja. A hibák megmutatják a probléma sorát és oszlopát.
  6. Másold ki vagy töltsd le az eredményt. Az Irány megfordítása a kimenetet átteszi a bemenetbe, hogy visszaalakítsd.

TOML és JSON egymás mellett

A TOML (Tom’s Obvious Minimal Language) a Rust Cargo.toml, a Python pyproject.toml, a Hugo- és Netlify-oldalak, valamint sok parancssori eszköz konfigurációs formátuma. Úgy tervezték, hogy emberek olvassák és szerkesszék, és közvetlenül leképezhető egy JSON-szerű fára, amely táblákból (objektumokból), tömbökből és értékekből áll.

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

[[bin]]
name = "cli"

ebből ez lesz:

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • A [table] fejléc JSON-objektummá válik, a pontozott kulcsok, például az a.b.c = 1, beágyazott objektumokká.
  • A táblatömb, a [[bin]], objektumok JSON-tömbjévé válik.
  • A soron belüli táblák ({ x = 1 }) és a tömbök a megszokott módon működnek. A megjegyzések elvesznek, mert a JSON-ban nincs ilyen.

Hol térnek el a formátumok

Dátumok és időpontok. A TOML-nak négy natív dátum-idő típusa van, a JSON-nak egy sincs. A konvertáló ISO 8601 sztringként írja ki őket, és megőrzi a típusukat: az időzónás dátum-idő 1979-05-27T07:32:00.000-08:00 marad, a helyi dátum 1979-05-27, a helyi idő pedig 07:32:00.000. A törtmásodperceket ezredmásodpercre pontosan őrzi meg. A TOML-ba visszaalakítva sima sztringeket kapsz, mert a JSON-ban semmi nem jelzi, hogy dátumról van szó.

Egész számok. A TOML egész számai előjeles 64 bitesek, −9 223 372 036 854 775 808 és 9 223 372 036 854 775 807 között. A JavaScript számai, amelyeket a legtöbb JSON-értelmező használ, csak 2^53-ig (9 007 199 254 740 991) pontosak. A nagyobb TOML-egészeket minden számjegyükkel kiírja az eszköz, ami érvényes JSON, de az őket duplaként beolvasó program kerekíteni fogja őket; ennek elkerüléséhez jelöld be a Nagy egész számok sztringként opciót. A 64 bites tartományon kívüli egész számot elutasítja, ahogyan a TOML-specifikáció megköveteli.

Különleges lebegőpontos értékek. Az inf, a -inf és a nan nem létezik JSON-ban, ezért az "inf", "-inf" és "nan" sztringként íródnak ki.

JSON → TOML. A TOML-dokumentum mindig tábla, ezért a JSON-nak a legfelső szinten objektumnak kell lennie. A TOML-ban nincs null: alapértelmezés szerint a null értékeket kihagyja az eszköz, és üzenetben közli, hányat; vedd ki a Null értékek kihagyása jelölést, ha inkább hibaüzenetet szeretnél az első helyével. A JSON nem különbözteti meg az 1-et az 1.0-tól, ezért az egész számok TOML-egészekké válnak, a 64 bitnél nagyobb számok pedig lebegőpontossá. Az újabb böngészőkben a JSON-ban lévő nagy egész számok megtartják pontos számjegyeiket.

Gyakori kérdések

Elküldésre kerül valahová a konfigurációm?

Nem. A konvertálás teljes egészében a böngésződben fut, így a konfigurációs fájlokban lévő API-kulcsok vagy titkok nem hagyják el a számítógépedet.

Miért változott meg a kulcsaim sorrendje a TOML kimenetben?

A TOML megköveteli, hogy az egyszerű kulcs–érték párok az egyes táblákban az altáblák előtt álljanak, ezért a konvertáló előbb az értékeket írja ki, aztán a [táblákat], végül a [[táblatömböket]]. Az adat ugyanaz.

Megmaradnak a TOML-megjegyzések?

Nem. A JSON-ban nincsenek megjegyzések, ezért TOML → JSON irányban elvesznek, visszafelé pedig nincs mit visszaállítani.

Melyik TOML-verziót támogatja az eszköz?

A TOML 1.0-t, beleértve a pontozott kulcsokat, a soron belüli táblákat, a táblatömböket, a hexadecimális, oktális és bináris egész számokat, valamint mind a négy dátum-idő típust.

Miért sztring a dátumom a JSON-ban?

A JSON-nak nincs dátumtípusa. Az ISO 8601 sztringek a szokásos konvenció, és a legtöbb nyelv közvetlenül értelmezni tudja őket.