ToolDeck

TOML to JSON

Převod formátu TOML do JSON

Zkusit příklad

Vstup TOML

Výstup JSON

Běží lokálně · Bezpečné pro vkládání tajných údajů
Výstup JSON se zobrazí zde…
Vyzkoušejte také:TOML Formatter

Co je převod TOML do JSON?

TOML (Tom's Obvious Minimal Language) je formát konfiguračních souborů navržený pro lidi. Jednoznačně se mapuje na hashovací tabulku, podporuje vnořené tabulky, typované hodnoty a inline komentáře. Mnoho nástrojů a frameworků používá TOML jako primární formát konfigurace: projekty v Rustu se spoléhají na Cargo.toml, Python packaging využívá pyproject.toml a statické weby Hugo se konfigurují přes config.toml. Převod TOML do JSON online umožňuje transformovat tyto konfigurační soubory do formátu, který dokáže nativně konzumovat prakticky každý programovací jazyk, API a datový pipeline.

JSON (JavaScript Object Notation), definovaný normou RFC 8259, je nejrozšířenější formát pro výměnu dat. Zatímco TOML upřednostňuje čitelnost pro lidi díky minimální syntaxi a podpoře komentářů, JSON upřednostňuje vzájemnou interoperabilitu strojů. Převodník TOML na JSON překlenuje tuto mezeru tak, že parsuje vstup TOML podle specifikace TOML v1.0.0 a produkuje strukturálně ekvivalentní JSON dokument. Převod zachovává veškerá data: řetězce, celá čísla, čísla s plovoucí desetinnou čárkou, booleany, pole a tabulky se přímo mapují na jejich protějšky v JSON.

TOML má čtyři nativní typy datum/čas, které JSON nedokáže přímo reprezentovat: datum a čas s časovým pásmem, lokální datum a čas, lokální datum a lokální čas. JSON nemá typ pro datum, proto se tyto hodnoty při převodu serializují jako řetězce ISO 8601.

Proč používat převodník TOML na JSON?

Konfigurační soubory napsané v TOML často potřebují vstupovat do systémů, které přijímají pouze JSON. Místo ručního přepisování souboru nebo lokální instalace knihovny pro parsování zvládne převod za několik sekund nástroj přímo v prohlížeči.

🔒
Zpracování s důrazem na soukromí
Vaše TOML data jsou parsována a převedena výhradně v prohlížeči. Nic se neodesílá na server, takže je bezpečné převádět konfigurační soubory obsahující API klíče, přihlašovací údaje k databázím nebo interní názvy hostitelů.
Okamžitý převod
Vložte TOML a okamžitě získáte formátovaný JSON výstup. Není třeba instalovat balíčky Node.js, knihovny Pythonu ani nástroje CLI jen kvůli jednorázovému převodu formátu.
🔀
Plná podpora TOML v1.0.0
Převodník zvládá všechny datové typy TOML včetně tečkovaných klíčů, inline tabulek, polí tabulek, víceřádkových řetězců a hodnot datum/čas. Hraniční případy, které způsobují problémy při ručním převodu, jsou zpracovány správně.
📋
Bez nutnosti registrace
Otevřete stránku, vložte TOML a zkopírujte výsledný JSON. Žádná registrace, žádný limit požadavků a žádné sledování využití. Nástroj funguje stejně při každé návštěvě.

Případy použití TOML na JSON

Frontendový vývoj
Převeďte metadata Cargo.toml projektu Rust WASM do JSON pro použití v JavaScriptovém build skriptu nebo při generování package.json.
Backendové inženýrství
Transformujte konfiguraci aplikace napsanou v TOML do JSON pro vložení do prostředí vyžadujících JSON konfiguraci, jako jsou proměnné prostředí AWS Lambda nebo popisky kontejnerů Docker.
DevOps a CI/CD
Pipeline nástroje jako GitHub Actions a GitLab CI často pracují s JSON vstupy. Převeďte konfigurace nástrojů v TOML (rustfmt.toml, taplo.toml) do JSON pro kroky lintování nebo validace.
QA a testování
Generujte JSON testovací vzorky ze zdrojových souborů TOML. TOML je snazší udržovat jako zdroj testovacích dat díky podpoře komentářů a přehledné syntaxi, ale testovací frameworky často očekávají JSON vstup.
Datové inženýrství
Při migraci konfigurace mezi systémy mohou TOML soubory z jedné platformy (např. InfluxDB, Telegraf) potřebovat stát se JSON dokumenty pro API nebo importní nástroj jiné platformy.
Vzdělávání a výuka
Studenti, kteří se učí datové formáty, mohou vkládat příklady TOML a sledovat, jak se tabulky stávají vnořenými objekty, jak se pole tabulek stávají JSON poli a jak se datové typy TOML mapují na řetězce.

Referenční tabulka mapování typů TOML na JSON

Každý typ TOML má přímý ekvivalent v JSON s jednou výjimkou: hodnoty datum a čas. Níže uvedená tabulka ukazuje, jak se každý typ TOML převádí do JSON. Toto mapování odpovídá specifikaci TOML v1.0.0 a chování standardních parserů jako tomllib (Python), toml-rs (Rust) a @iarna/toml (Node.js).

TypSyntaxe TOMLVýstup JSON
String"value""value"
Integer4242
Float3.143.14
Booleantrue / falsetrue / false
Offset Date-Time1979-05-27T07:32:00Z"1979-05-27T07:32:00Z"
Local Date-Time1979-05-27T07:32:00"1979-05-27T07:32:00"
Local Date1979-05-27"1979-05-27"
Local Time07:32:00"07:32:00"
Array[1, 2, 3][1, 2, 3]
Table[section]{ "section": {} }
Inline Table{ key = "val" }{ "key": "val" }
Array of Tables[[items]]"items": [{}]

Celá čísla TOML podporují pro přehlednost podtržítka (např. 1_000_000) a literály v šestnáctkové (0xDEADBEEF), osmičkové (0o755) a binární (0b11010110) soustavě. Všechny se převedou na desetinná čísla v JSON. TOML také podporuje hodnoty infinity a NaN pro čísla s plovoucí desetinnou čárkou, ale ty nemají v JSON reprezentaci a způsobí chybu převodu v přísném režimu.

Příklady kódu

Funkční příklady převodu TOML na JSON ve čtyřech jazycích. Každý přečte soubor TOML, parsuje jej a vypíše formátovaný JSON.

JavaScript (Node.js)
import { parse } from '@iarna/toml'
import fs from 'fs'

const toml = fs.readFileSync('config.toml', 'utf8')
const json = parse(toml)
console.log(JSON.stringify(json, null, 2))
// Input:  [server]
//         host = "localhost"
//         port = 8080
// Output: { "server": { "host": "localhost", "port": 8080 } }
Python
import tomllib   # Python 3.11+ (standard library)
import json

with open('config.toml', 'rb') as f:
    data = tomllib.load(f)

print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main

import (
    "encoding/json"
    "fmt"
    "os"

    "github.com/BurntSushi/toml"
)

func main() {
    var data map[string]any
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        panic(err)
    }
    out, _ := json.MarshalIndent(data, "", "  ")
    fmt.Println(string(out))
}
CLI (yj / dasel)
# Using yj (YAML/JSON/TOML converter)
cat config.toml | yj -tj

# Using dasel
dasel -f config.toml -r toml -w json

# Using Python one-liner (3.11+)
python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer), indent=2, default=str))" < config.toml

Nejčastější dotazy

Co se stane s komentáři TOML při převodu?
Komentáře TOML (řádky začínající #) jsou při převodu zahozeny. JSON komentáře nepodporuje, takže je nelze ve výstupu zachovat. Pokud potřebujete komentáře uchovat, zvažte jako cílový formát JSONC (JSON s komentáři).
Může při převodu TOML na JSON dojít ke ztrátě dat?
U standardních TOML dokumentů nedochází ke ztrátě dat. Všechny řetězce, čísla, booleany, pole a tabulky mají přímé ekvivalenty v JSON. Jedinou transformací jsou hodnoty datum a čas, které se v JSON stanou řetězci ISO 8601. Problémy mohou způsobit dva hraniční případy: TOML podporuje hodnoty infinity a NaN pro čísla s plovoucí desetinnou čárkou, které JSON neumí reprezentovat, a velmi velká celá čísla mohou překročit limity přesnosti JSON parserů (2^53 - 1 v JavaScriptu).
Jak jsou pole tabulek TOML reprezentována v JSON?
Syntaxe [[dvojitých závorek]] v TOML definuje pole tabulek. Každý blok [[sekce]] připojí nový objekt do JSON pole. Například dva bloky [[fruits]] se stanou JSON polem se dvěma objekty: "fruits": [{...}, {...}]. Syntaxe s dvojitými závorkami je jednou z obtížněji čitelných částí TOML na první pohled; výstup JSON dělá strukturu zřejmou.
Je převod reverzibilní? Mohu jít z JSON zpět do TOML?
Strukturálně ano. Jakýkoli JSON objekt lze reprezentovat jako TOML tabulku a JSON pole se mapují na TOML pole. Nicméně vlastnosti specifické pro TOML, jako jsou komentáře, seskupování tečkovaných klíčů a formátování inline tabulek, jsou při počátečním převodu TOML na JSON ztraceny a nelze je obnovit. Zpětný převod vyprodukuje platný, ale potenciálně méně čitelný TOML.
Jaký je rozdíl mezi TOML a JSON pro konfigurační soubory?
TOML byl navržen pro konfiguraci: podporuje komentáře, má čitelnější syntaxi pro vnořené struktury, rozlišuje mezi celými čísly a čísly s plovoucí desetinnou čárkou a obsahuje nativní typy datum/čas. JSON byl navržen pro výměnu dat mezi programy. JSON je podporován širším spektrem nástrojů a API, ale TOML je pro lidi snadnější číst a upravovat. Mnoho projektů používá TOML pro zdrojovou konfiguraci a převádí ji do JSON pro nasazení.
Jak tento nástroj zpracovává tečkované klíče jako server.host?
Tečkované klíče v TOML (např. server.host = "localhost") vytvářejí v JSON vnořené objekty: {"server": {"host": "localhost"}}. To je ekvivalentní definici tabulky [server] s klíčem host. Převodník automaticky rozvine tečkované klíče do jejich plné vnořené struktury.
Proč se můj soubor TOML nepodaří převést?
Mezi běžné příčiny patří: chybějící uvozovky kolem řetězcových hodnot (TOML je vyžaduje), použití tabulátorů pro odsazení uvnitř víceřádkových základních řetězců, duplicitní definice klíčů a míchání tečkovaných klíčů s explicitními hlavičkami tabulek pro stejnou cestu. Převodník zobrazí chybovou zprávu parseru s číslem řádku, aby vám pomohl problém lokalizovat.