Utilia

TOML til JSON-konverterer

Konverter TOML til JSON og JSON til TOML i nettleseren din. Håndterer tabeller, lister av tabeller, datoer og 64-biters heltall. Ingenting lastes opp.

Konvertering

Slik konverterer du TOML til JSON

  1. Velg retning: TOML → JSON (standard) eller JSON → TOML.
  2. Lim inn dataene dine, eller klikk Åpne fil for å laste inn en .toml- eller .json-fil (opptil 10 MB).
  3. For TOML → JSON velger du Innrykk (2 eller 4 mellomrom) og bestemmer om du vil huke av for Store heltall som strenger. For JSON → TOML kan du beholde eller fjerne haken for Utelat null-verdier.
  4. Huk av for Sorter nøkler hvis du vil ha hver tabell sortert alfabetisk.
  5. Resultatet oppdateres mens du skriver. Konverter kjører det på nytt ved behov. Feil viser linje og kolonne for problemet.
  6. Kopier eller last ned resultatet. Bytt retning flytter resultatet over i inndataene, slik at du kan konvertere det tilbake.

TOML og JSON ved siden av hverandre

TOML (Tom’s Obvious Minimal Language) er konfigurasjonsformatet bak Cargo.toml i Rust, pyproject.toml i Python, Hugo- og Netlify-nettsteder og mange kommandolinjeverktøy. Det er laget for å leses og redigeres av mennesker, og det kan overføres direkte til et JSON-lignende tre av tabeller (objekter), lister og verdier.

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

[[bin]]
name = "cli"

blir til

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • En [tabell]-overskrift blir til et JSON-objekt, og nøkler med punktum som a.b.c = 1 blir til nestede objekter.
  • En liste av tabeller, [[bin]], blir til en JSON-liste av objekter.
  • Innebygde tabeller { x = 1 } og lister fungerer slik du forventer. Kommentarer droppes, siden JSON ikke har noen.

Der de to formatene er ulike

Datoer og klokkeslett. TOML har fire egne dato-/tidstyper, mens JSON ikke har noen. Konvertereren skriver dem som ISO 8601-strenger og beholder variantene: en dato med tidsforskyvning forblir 1979-05-27T07:32:00.000-08:00, en lokal dato forblir 1979-05-27, og et lokalt klokkeslett forblir 07:32:00.000. Brøkdeler av sekunder beholdes til millisekund. Når du konverterer tilbake til TOML, får du vanlige strenger, fordi ingenting i JSON markerer dem som datoer.

Heltall. TOML-heltall er 64-biters med fortegn, fra −9 223 372 036 854 775 808 til 9 223 372 036 854 775 807. JavaScript-tall, som de fleste JSON-parsere bruker, er bare nøyaktige opp til 2^53 (9 007 199 254 740 991). Større TOML-heltall skrives med alle sifrene, noe som er gyldig JSON, men et program som leser dem som flyttall, vil runde dem av. Huk av for Store heltall som strenger for å unngå det. Et heltall utenfor 64-biters området avvises, slik TOML-spesifikasjonen krever.

Spesielle flyttall. inf, -inf og nan har ingen JSON-form, så de skrives som strengene "inf", "-inf" og "nan".

JSON → TOML. Et TOML-dokument er alltid en tabell, så JSON må være et objekt på øverste nivå. TOML har ingen null: som standard utelates null-verdier, og en melding forteller hvor mange. Fjern haken for Utelat null-verdier for i stedet å få en feil med plasseringen av den første. JSON skiller ikke mellom 1 og 1.0, så hele tall blir TOML-heltall, og tall som er for store for 64 biter, blir flyttall. I nyere nettlesere beholder store heltall i JSON-en din de nøyaktige sifrene.

Ofte stilte spørsmål

Blir konfigurasjonen min sendt noe sted?

Nei. Konverteringen kjører helt i nettleseren din, så API-nøkler eller hemmeligheter i konfigurasjonsfilene dine forlater aldri datamaskinen din.

Hvorfor ble rekkefølgen på nøklene endret i TOML-resultatet?

TOML krever at vanlige nøkkel/verdi-par kommer før undertabeller i hver tabell, så konvertereren skriver verdiene først, deretter [tabeller] og til slutt [[lister av tabeller]]. Dataene er de samme.

Bevares TOML-kommentarer?

Nei. JSON har ingen kommentarer, så de går tapt ved konvertering fra TOML til JSON, og det er ingen å gjenopprette på veien tilbake.

Hvilken TOML-versjon støttes?

TOML 1.0, inkludert nøkler med punktum, innebygde tabeller, lister av tabeller, heksadesimale, oktale og binære heltall og alle fire dato-/tidstypene.

Hvorfor er datoen min en streng i JSON?

JSON har ingen datotype. ISO 8601-strenger er den vanlige konvensjonen, og de fleste språk kan tolke dem direkte.