Utilia

TOML till JSON-konverterare

Konvertera TOML till JSON och JSON till TOML i din webbläsare. Hanterar tabeller, tabellarrayer, datum och 64-bitars heltal. Inget laddas upp.

Konvertering

Så konverterar du TOML till JSON

  1. Välj riktning: TOML → JSON (standard) eller JSON → TOML.
  2. Klistra in dina data, eller klicka på Öppna en fil för att läsa in en .toml- eller .json-fil (upp till 10 MB).
  3. För TOML → JSON väljer du Indrag (2 eller 4 mellanslag) och bestämmer om du vill kryssa i Stora heltal som strängar. För JSON → TOML låter du Utelämna null-värden vara ikryssad eller kryssar ur den.
  4. Kryssa i Sortera nycklar om du vill att varje tabell ska ordnas alfabetiskt.
  5. Resultatet uppdateras medan du skriver, och Konvertera kör konverteringen igen vid behov. Fel visas med rad och kolumn för problemet.
  6. Kopiera eller ladda ner resultatet. Byt riktning flyttar resultatet till indata så att du kan konvertera tillbaka.

TOML och JSON sida vid sida

TOML (Tom’s Obvious Minimal Language) är konfigurationsformatet bakom Cargo.toml i Rust, pyproject.toml i Python, Hugo- och Netlify-webbplatser och många kommandoradsverktyg. Det är gjort för att läsas och redigeras av människor och motsvarar direkt ett JSON-liknande träd av tabeller (objekt), arrayer och värden.

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

[[bin]]
name = "cli"

blir

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • En [tabell]-rubrik blir ett JSON-objekt, och punktade nycklar som a.b.c = 1 blir nästlade objekt.
  • En tabellarray, [[bin]], blir en JSON-array med objekt.
  • Inline-tabeller { x = 1 } och arrayer fungerar som man kan vänta sig. Kommentarer försvinner, eftersom JSON saknar kommentarer.

Där formaten skiljer sig åt

Datum och tid. TOML har fyra inbyggda typer för datum och tid, JSON har ingen. Konverteraren skriver dem som ISO 8601-strängar och behåller deras variant: ett datum med tid och tidszonsförskjutning förblir 1979-05-27T07:32:00.000-08:00, ett lokalt datum förblir 1979-05-27 och en lokal tid förblir 07:32:00.000. Bråkdelar av sekunder behålls med millisekundsprecision. Konverterar du tillbaka till TOML blir det vanliga strängar, eftersom inget i JSON markerar dem som datum.

Heltal. TOML-heltal är 64-bitars med tecken, från −9 223 372 036 854 775 808 till 9 223 372 036 854 775 807. JavaScript-tal, som de flesta JSON-tolkar använder, är bara exakta upp till 2^53 (9 007 199 254 740 991). Större TOML-heltal skrivs med alla siffror, vilket är giltig JSON, men ett program som läser dem som flyttal (double) avrundar dem. Kryssa i Stora heltal som strängar för att undvika det. Ett heltal utanför 64-bitarsintervallet avvisas, som TOML-specifikationen kräver.

Speciella flyttal. inf, -inf och nan har ingen motsvarighet i JSON, så de skrivs som strängarna "inf", "-inf" och "nan".

JSON → TOML. Ett TOML-dokument är alltid en tabell, så JSON-koden måste vara ett objekt på översta nivån. TOML har inget null: som standard utelämnas null-värden och ett meddelande talar om hur många. Kryssa ur Utelämna null-värden om du i stället vill få ett fel med platsen för det första. JSON skiljer inte på 1 och 1.0, så heltal blir TOML-heltal, och tal som är för stora för 64 bitar blir flyttal. I nyare webbläsare behåller stora heltal i din JSON sina exakta siffror.

Vanliga frågor

Skickas min konfiguration någonstans?

Nej. Konverteringen körs helt i din webbläsare, så API-nycklar och hemligheter i dina konfigurationsfiler lämnar aldrig din dator.

Varför ändrades ordningen på mina nycklar i TOML-resultatet?

TOML kräver att enkla nyckel/värde-par kommer före undertabeller i varje tabell, så konverteraren skriver värdena först, sedan [tabeller] och sist [[tabellarrayer]]. Datan är densamma.

Bevaras TOML-kommentarer?

Nej. JSON har inga kommentarer, så de går förlorade vid konvertering TOML → JSON, och det finns inga att återställa på vägen tillbaka.

Vilken TOML-version stöds?

TOML 1.0, inklusive punktade nycklar, inline-tabeller, tabellarrayer, hexadecimala, oktala och binära heltal samt alla fyra typer för datum och tid.

Varför är mitt datum en sträng i JSON?

JSON har ingen datumtyp. ISO 8601-strängar är den vanliga konventionen, och de flesta programmeringsspråk kan tolka dem direkt.