TOML ⇄ JSON 轉換
Rust/Python 配置 · 雙向互轉
TOML 轉換
就緒
ABOUT
關於 TOML ⇄ JSON 轉換
在 TOML 與 JSON 格式之間轉換,方便編輯 Rust、Python 專案配置檔案。
Rust Cargo、Python Poetry、Hugo 配置——TOML 在靜態型別與指令碼語言生態中越來越常見。本地互轉讓你無需安裝 cargo、python -c 即可審查 pyproject.toml 結構。
DEEP DIVE
深入瞭解 TOML ⇄ JSON 轉換
TOML(Tom's Obvious Minimal Language)因 Rust Cargo、Python Poetry/pyproject.toml、 Hugo 配置等生態而流行。與 JSON 相比,TOML 更易讀寫,但 JavaScript 原生不支援。JSONSort 提供 TOML ↔ JSON 本地雙向轉換,無需安裝 Python tomllib 或 Rust toml crate。
轉換保留表([section])與鍵值結構:TOML table 對應 JSON 物件,陣列 of table 對應 JSON 物件陣列,適合快速檢視 Rust/Python 專案配置結構。
TOML table 與 dotted key 在 JSON 中均對映為巢狀物件;[[array of tables]] 對應 JSON 物件陣列。轉換後建議用樹檢視確認 [dependencies] 等 section 是否正確展開,避免 dotted key 與 table 衝突導致覆蓋。
FEATURES
核心能力
TOML → JSON
解析 TOML 配置檔案為 JSON 物件。
JSON → TOML
從 JSON 生成格式正確的 TOML 文字。
Table 支援
正確處理 [section] 與 [[array of tables]]。
型別保留
字串、整數、浮點、布林、日期時間正確對映。
檔案匯入
拖拽 .toml 檔案匯入解析。
本地轉換
Cargo.toml 等可能含私有 crate 源配置,本地更安全。
日期時間
TOML offset datetime 轉為 ISO 8601 JSON 字串。
整數/浮點
區分 TOML 整數與浮點,JSON 中型別正確保留。
HOW TO USE
使用步驟
-
1
貼上 TOML 或 JSON
-
2
選擇轉換方向
-
3
複製並匯出結果
-
4
轉換失敗時檢視錯誤提示,修正原始檔語法後重試
-
5
結果可用格式化工具美化,或匯出供下游指令碼使用
WORKFLOW
典型工作流
從匯入資料到匯出結果的完整流程,幫助團隊統一 TOML ⇄ JSON 轉換 的使用方式。
匯入 TOML
貼上 Cargo.toml / pyproject.toml 或拖拽檔案。
檢查 JSON
樹檢視確認 table 與 array of tables 結構。
編輯(可選)
在 JSON 側修改後轉回 TOML 提交 PR。
流水線整合
複製 JSON 給不支援 TOML 的內部工具。
USE CASES
適用場景
Rust 開發
Cargo.toml 轉 JSON 後用樹檢視瀏覽依賴結構。
Python 開發
pyproject.toml 轉 JSON 便於 CI 指令碼讀取。
DevOps
統一 TOML 配置與 JSON 配置管理工具鏈。
技術寫作
文件中 TOML 範例旁提供 JSON 等價形式。
Rust 生態
Cargo.toml workspace 成員與 features 轉 JSON 做 CI 矩陣。
靜態站點
Hugo config.toml 轉 JSON 接入 headless CMS 配置同步。
TIPS
使用技巧
- Cargo.toml 轉換後檢查 [dependencies] 下的 crate 版本鍵。
- TOML 日期時間型別在 JSON 中通常轉為 ISO 8601 字串。
- JSON → TOML 時,深層巢狀物件會轉為 dotted keys 或 subtable。
- 與 YAML 工具對比:Rust 生態用 TOML,K8s 生態用 YAML,按專案選工具。
- 轉換失敗時檢查 TOML 是否有重複鍵或未閉合字串。
- 轉換結果可用格式化工具美化,便於 Git diff 審查。
- Cargo workspace.dependencies 轉 JSON 後用路徑提取查版本。
- JSON → TOML 後 dotted key 與 [table] 不要混用同一層級。
- 轉換失敗時檢查 TOML 是否有重複鍵或未閉合字串。
- 與 YAML 工具對比:按專案生態選源格式,JSON 作中間橋樑。
LOCAL VS ONLINE
本地 vs 線上工具
JSONSort 堅持純前端架構,以下對比說明為何本地化工具更適合處理開發資料。
TROUBLESHOOTING
常見誤區與排查
實際使用中容易遇到的問題及建議處理方式,減少反覆試錯的時間。
重複鍵報錯
建議:TOML 不允許重複定義;檢查 dotted key 與 table 衝突。
轉回 TOML 順序變化
建議:功能等價;若依賴順序請人工調整。
日期格式不對
建議:確認 TOML datetime 帶時區;JSON 側為 ISO 字串。
特殊字元鍵
建議:含點號的鍵用引號包裹 "key.with.dots"。
FAQ
常見問題
支援 Cargo.toml 嗎?
支援標準 TOML 1.0 語法。Cargo 特定語義(如 workspace)按結構轉換。
JSON 轉 TOML 會丟資訊嗎?
JSON 可表示的結構均可轉 TOML。TOML 註釋在 JSON 方向會丟失。
與 YAML 工具有什麼區別?
TOML 與 YAML 語法不同,請根據原始檔格式選擇對應工具。
支援 inline table 嗎?
支援 { key = "value" } 形式,轉為 JSON 巢狀物件。
丟失註釋怎麼辦?
TOML 註釋無法進入 JSON,請保留 .toml 原始檔作為註釋來源。
資料會上傳到伺服器嗎?
不會。JSONSort 所有工具均在瀏覽器本地執行,您的輸入內容不會傳送到任何後端伺服器。
需要註冊或安裝嗎?
不需要。開啟頁面即可使用,無需賬號、無需下載客戶端,也支援 PWA 離線快取。
支援多大的檔案?
取決於瀏覽器記憶體,通常可流暢處理數 MB 級別的資料。超大檔案建議先拆分或使用合併清理工具。