JSON 轉 TOML

將 JSON 文件轉換為 TOML,可配置縮排和美化開關。

將 JSON 文件轉換為 TOML,可配置縮排和美化開關。 將 JSON 文件轉換為 TOML,可配置縮排和美化開關。

輸出

背景知識

為什麼把 JSON 轉成 TOML

JSON 線上協議中無處不在,但現代配置檔案(Cargo、pyproject.toml、GitHub Actions、uv 等)大多用 TOML。當把 API 返回的 JSON 片段複製到配置檔案時,通常要手工翻譯語法:大括號變成節、方括號變成陣列、逗號變換行、帶引號的鍵變成裸鍵。

轉換器自動完成這種翻譯,你貼上 API 響應、複製 TOML 輸出即可。

關鍵特性

大多數轉換器預設保留 JSON 物件順序。TOML 允許重新排列節,因此“排序鍵”選項在想要跨執行穩定 diff 時很有用。縮排控制能匹配專案風格(兩空格或四空格)。

對於 TOML 中的表陣列,若 JSON 陣列包含統一物件則輸出內聯形式 key = [ ... ];若型別混合或重複同一模式則輸出表頭形式 [[section]]。這是唯一不能純機械轉換的場景。

工作流建議

提交 TOML 前請確認 JSON 中使用的鍵都是合法的 TOML 裸鍵(無空格、無前導數字、無前導連字元)。轉換器原樣保留鍵名,不會改名。轉換完成後,貼上到編輯器並執行專案 linter,以捕獲轉換器不感知的風格問題。

自研實現。JSON 用瀏覽器原生 JSON.parse 解析,輸出由 BSD-3 協議的 smol-toml 庫(已內建)生成。所有處理均在本地完成,不會上傳。

常見問題

轉換器支援巢狀物件嗎?
支援。巢狀 JSON 物件會變成巢狀 TOML 表。轉換器保留層級深度,非常深的巢狀會相應展開成 [[section.sub]] 表頭。
基本型別陣列呢?
基本型別(數字、字串、布林)的陣列會變成 TOML 的內聯陣列。TOML 要求陣列同質,混合型別的陣列會被底層解析器拒絕。
JSON 的 null 值會保留嗎?
TOML 沒有 null 字面量。轉換器會丟棄 null 並給出提示;若需記錄“缺失”,請在轉換前改用空字串或哨兵值。
為什麼輸出裡沒有原 JSON 的註釋?
JSON 不支援註釋。如果需要在 TOML 中保留註釋,請在轉換後手動新增。
轉換器會改變鍵的順序嗎?
不會。預設按 JSON 中的順序輸出。需要穩定可對比的字母順序時,請開啟排序選項。
我的 JSON 會被髮送到哪裡嗎?
不會。轉換完全在瀏覽器內通過原生 JSON.parse 與內建 smol-toml 庫完成。