TOML 轉 JSON

把 TOML 文件轉換為 JSON,支援縮排和緊湊模式。

把 TOML 文件轉換為 JSON,支援縮排和緊湊模式。 把 TOML 文件轉換為 JSON,支援縮排和緊湊模式。

輸出

背景知識

為什麼要把 TOML 變成 JSON

JSON 是 Web 上的通用語:每個 API 都說它,每個編輯器都能高亮它,每種語言的標準庫都有解析器。TOML 擅長人類編輯的配置,但作為執行時資料交換格式的支援不如 JSON 廣泛。當你需要把 TOML 配置餵給只吃 JSON 的工具(線上 playground、schema 校驗器、程式碼生成器等)時,可靠的 TOML→JSON 轉換器能救場。

因為兩種格式都足以表達同樣的基本型別,轉換基本無損。TOML 特有的型別(多行字串、日期)翻譯為普通字串;JSON 特有的值(null)翻譯為 JSON 字面量 null,TOML 沒有原生對應。

關鍵特性

轉換器提供美化切換(2/4 空格縮排)和緊湊模式(單行)。對於很大的配置檔案,緊湊輸出更容易貼上到 curl 請求體裡。“交換”按鈕把 JSON 輸出搬回輸入框,方便重新編輯後再匯出為 TOML。

工作流建議

轉換後,先用 schema 校驗器(ajv、jsonschema 等)驗證 JSON,再餵給下游工具。TOML 解析器很嚴格:它會拒絕以數字開頭的未加引號標量、帶註釋的內聯表等常見錯誤。利用報錯資訊修復源文件,而不是改 JSON。

自研實現。TOML 由 BSD-3 協議的 smol-toml 庫(已內建)解析,再通過瀏覽器原生 JSON.stringify 生成 JSON。不上傳任何資料。

常見問題

轉換器支援 TOML 1.0 特性嗎?
支援。轉換器解析 TOML 1.0,包括表陣列([[name]])、內聯表({ key = "value" })和點鍵(a.b.c)。
TOML 日期在 JSON 中如何輸出?
無時間的日期變成 JSON 字串 `YYYY-MM-DD`。日期時間變成 `YYYY-MM-DDTHH:MM:SS[.fraction][Z|+offset]`。接收方可用各自語言的日期庫解析。
TOML 的多行字串呢?
會輸出為帶換行符的普通 JSON 字串。JSON 無法保留字面量風格,但解析後的值完全一致。
轉換器能處理點鍵嗎?
可以。`a.b.c = 1` 會變成 `{ "a": { "b": { "c": 1 } } }`,每個點鍵展開成巢狀物件。
無效 TOML 會被拒絕嗎?
會。解析器在第一個非法 token 處丟擲帶行列指標的錯誤。修正源 TOML 後重試。
我的 TOML 會上傳嗎?
不會。解析通過內建的 smol-toml 庫在本地完成,瀏覽器外不傳送任何資料。