TOML 與 JSON 互轉指南
JSON(更新於 2026年6月3日)
TOML 簡介
TOML(Tom's Obvious Minimal Language)是一種專為設定檔設計的格式,由 GitHub 共同創辦人 Tom Preston-Werner 建立。它的目標是:
- 人類可讀,語義明確
- 能無歧義地對應為雜湊表
- 比 YAML 更簡單,比 JSON 更友好
基本語法
title = "TOML 範例"
[owner]
name = "張三"
email = "zhang@example.com"
[database]
host = "127.0.0.1"
port = 5432
enabled = true
TOML vs JSON vs YAML 比較
| 特性 | TOML | JSON | YAML |
|---|---|---|---|
| 註解 | 支援 # |
不支援 | 支援 # |
| 日期型別 | 原生支援 | 不支援 | 不支援 |
| 多行字串 | 支援 | 不支援 | 支援 |
| 複雜度 | 低 | 中 | 高 |
| 解析歧義 | 無 | 無 | 有 |
| 主要用途 | 設定檔 | 資料交換 | 設定檔 |
使用 TOML↔JSON工具 進行轉換
步驟一:選擇轉換方向
開啟 TOML↔JSON工具,選擇「TOML → JSON」或「JSON → TOML」。
步驟二:輸入資料
將 TOML 或 JSON 內容貼到輸入區域。支援直接上傳檔案。
步驟三:轉換
點擊轉換按鈕,結果即時顯示在輸出區域。
步驟四:複製或下載
一鍵複製轉換結果,或下載為對應格式的檔案。
TOML 轉 JSON 的對應規則
基本型別
string = "hello"
integer = 42
float = 3.14
boolean = true
轉為 JSON:
{
"string": "hello",
"integer": 42,
"float": 3.14,
"boolean": true
}
表(Table)→ 物件
[server]
host = "localhost"
port = 8080
轉為 JSON:
{
"server": {
"host": "localhost",
"port": 8080
}
}
陣列
ports = [8000, 8001, 8002]
日期時間
TOML 原生支援日期型別,轉為 JSON 時會變為字串:
created = 2026-06-01T10:00:00Z
→ "created": "2026-06-01T10:00:00Z"
JSON 轉 TOML 的注意事項
- JSON 中的
null在 TOML 中沒有對應型別,轉換時需特殊處理 - JSON 陣列中的混合型別在 TOML 中不合法
- JSON 的巢狀物件會轉為 TOML 的表(Table)
- 建議轉換後檢查註解和格式是否滿足需求
常見應用場景
Rust 專案:Cargo.toml
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = "1.0"
tokio = { version = "1", features = ["full"] }
需要修改依賴版本時,用 TOML↔JSON工具 轉為 JSON 程式化處理後再轉回。
Python 專案:pyproject.toml
[project]
name = "my-package"
version = "1.0.0"
requires-python = ">=3.8"
[project.dependencies]
requests = "^2.28"
flask = "^2.3"
靜態網站設定
Hugo、Zola 等靜態網站產生器使用 TOML 作為設定格式,經常需要與 JSON 格式互轉。
與其他格式聯動
- TOML ↔ YAML:先用 TOML↔JSON工具 轉為 JSON,再用 YAML↔JSON工具 轉為 YAML
- 轉換後用 JSON格式化 驗證中間結果
- 建議保留原始 TOML 中的註解,轉換後手動補回
常見錯誤
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| TOML 解析失敗 | 語法錯誤 | 檢查表頭和鍵值對格式 |
| 日期格式異常 | 時區資訊缺失 | 補充完整的 ISO 8601 格式 |
| null 無法轉換 | TOML 無 null | 用空字串或刪除該欄位 |
| 內行表格式錯誤 | 語法不規範 | 改用標準表格式 |
總結
TOML 是現代設定檔的優秀選擇,與 JSON 的互轉在專案設定管理中非常實用。TOML↔JSON工具 讓你快速完成格式轉換,配合 YAML↔JSON 工具還能實現三種格式間的自由切換。
#TOML#JSON#配置文件#Rust#Python