Utilia

TOML til JSON-konverter

Konvertér TOML til JSON og JSON til TOML i din browser. Håndterer tabeller, arrays af tabeller, datoer og 64-bit-heltal. Intet uploades.

Konvertering

Sådan konverterer du TOML til JSON

  1. Vælg retningen: TOML → JSON (standard) eller JSON → TOML.
  2. Indsæt dine data, eller klik på Åbn fil for at indlæse en .toml- eller .json-fil (op til 10 MB).
  3. Ved TOML → JSON vælger du Indrykning (2 eller 4 mellemrum) og afgør, om du vil sætte kryds ved Store heltal som strenge. Ved JSON → TOML kan du beholde eller fjerne krydset ved Udelad null-værdier.
  4. Sæt kryds ved Sortér nøgler, hvis du vil have hver tabel ordnet alfabetisk.
  5. Resultatet opdateres, mens du skriver; Konvertér kører det igen efter behov. Fejl viser linje og kolonne for problemet.
  6. Kopiér eller download resultatet. Skift retning flytter outputtet over i inputtet, så du kan konvertere det tilbage.

TOML og JSON side om side

TOML (Tom’s Obvious Minimal Language) er konfigurationsformatet bag Cargo.toml i Rust, pyproject.toml i Python, Hugo- og Netlify-websites og mange kommandolinjeværktøjer. Det er lavet til at blive læst og redigeret af mennesker, og det svarer direkte til et JSON-lignende træ af tabeller (objekter), arrays og værdier.

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

[[bin]]
name = "cli"

bliver til

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • En [table]-overskrift bliver til et JSON-objekt, og nøgler med punktum som a.b.c = 1 bliver til indlejrede objekter.
  • Et array af tabeller, [[bin]], bliver til et JSON-array af objekter.
  • Inline-tabeller { x = 1 } og arrays virker, som du forventer. Kommentarer droppes, da JSON ikke har nogen.

Hvor de to formater adskiller sig

Datoer og klokkeslæt. TOML har fire indbyggede typer til dato og tid; JSON har ingen. Konverteren skriver dem som ISO 8601-strenge og bevarer deres art: et tidspunkt med tidszoneforskydning forbliver 1979-05-27T07:32:00.000-08:00, en lokal dato forbliver 1979-05-27, og et lokalt klokkeslæt forbliver 07:32:00.000. Brøkdele af sekunder bevares til millisekundet. Når du konverterer tilbage til TOML, får du almindelige strenge, fordi intet i JSON markerer dem som datoer.

Heltal. TOML-heltal er 64-bit med fortegn, fra −9.223.372.036.854.775.808 til 9.223.372.036.854.775.807. JavaScript-tal, som de fleste JSON-fortolkere bruger, er kun nøjagtige op til 2^53 (9.007.199.254.740.991). Større TOML-heltal skrives med alle cifre, hvilket er gyldig JSON, men et program, der læser dem som doubles, afrunder dem; sæt kryds ved Store heltal som strenge for at undgå det. Et heltal uden for 64-bit-intervallet afvises, som TOML-specifikationen kræver.

Specielle flydende tal. inf, -inf og nan har ingen JSON-form, så de skrives som strengene "inf", "-inf" og "nan".

JSON → TOML. Et TOML-dokument er altid en tabel, så JSON skal være et objekt på øverste niveau. TOML har ingen null: som standard udelades null-værdier, og en meddelelse fortæller, hvor mange; fjern krydset ved Udelad null-værdier for i stedet at få en fejl med placeringen af den første. JSON skelner ikke mellem 1 og 1.0, så hele tal bliver til TOML-heltal, og tal, der er for store til 64 bit, bliver til flydende tal. I nyere browsere bevarer store heltal i din JSON deres nøjagtige cifre.

Ofte stillede spørgsmål

Bliver min konfiguration sendt nogen steder hen?

Nej. Konverteringen kører helt i din browser, så API-nøgler eller hemmeligheder i dine konfigurationsfiler aldrig forlader din computer.

Hvorfor er rækkefølgen af mine nøgler ændret i TOML-outputtet?

TOML kræver, at almindelige nøgle/værdi-par står før undertabeller i hver tabel, så konverteren skriver først værdier, derefter [tabeller] og til sidst [[arrays af tabeller]]. Dataene er de samme.

Bevares TOML-kommentarer?

Nej. JSON har ingen kommentarer, så de går tabt ved konvertering fra TOML til JSON, og der er ingen at genskabe på vejen tilbage.

Hvilken TOML-version understøttes?

TOML 1.0, herunder nøgler med punktum, inline-tabeller, arrays af tabeller, hexadecimale, oktale og binære heltal og alle fire typer til dato og tid.

Hvorfor er min dato en streng i JSON?

JSON har ingen datotype. ISO 8601-strenge er den sædvanlige konvention, og de fleste sprog kan læse dem direkte.