DevToolPal
繁

TOML 與 JSON 互轉

把 TOML 轉成 JSON,或把 JSON 轉成 TOML。支援表格、表格陣列、行內表格和日期,出錯時精確指出位置。

本機處理,不會上傳

選項

方向
JSON 縮排

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能介紹

這個工具可以把 TOML 轉成 JSON,也能把 JSON 轉回 TOML。TOML 是 Rust 的 Cargo.toml、Python 的 pyproject.toml、Hugo、Netlify、Deno 和許多其他工具背後的設定檔格式。它很方便人工編輯,但大多數指令碼、API 和驗證工具需要的是 JSON。轉換之後,你就能用 JSON 工具檢查設定、把它交給程式處理,或把 JSON 資料整理成清爽的設定檔。

使用方式

  1. 把 TOML 貼到輸入框、拖曳 .toml 檔案進來,或按 範例。
  2. JSON 會隨著輸入即時出現。可選擇 2 或 4 個空格縮排。
  3. 把 方向 切換成 JSON → TOML 就能反向轉換。JSON 的最外層必須是物件,因為 TOML 文件永遠是一個表格。
  4. 複製或下載結果。

如果 TOML 有錯誤,錯誤訊息會顯示行號和欄號,點一下就會跳到該位置。常見的錯誤包括少了結尾引號、重複定義同一個鍵或表格,以及在 = 右邊放了沒有加引號的字串。

範例

TOML 輸入:

[server]
host = "0.0.0.0"
port = 8080

[[users]]
name = "Alice"
roles = ["admin", "editor"]

JSON 輸出:

{
  "server": { "host": "0.0.0.0", "port": 8080 },
  "users": [{ "name": "Alice", "roles": ["admin", "editor"] }]
}

[server] 會變成巢狀物件,每個 [[users]] 區塊則會在 users 陣列中新增一個元素。

型別對應

  • 字串、整數、浮點數和布林值直接對應。超出 JavaScript 安全範圍的大整數會失去精度,所以 ID 請保持為字串。
  • 陣列對應到陣列,表格和行內表格對應到物件。
  • 帶時差的日期時間、本地日期時間、本地日期和本地時間都會變成 ISO 8601 字串。
  • 反方向轉換時,null 在 TOML 中沒有對應值,會連同路徑一起回報錯誤。巢狀物件會變成 [table] 區段,物件陣列會變成 [[array]] 區段。

常見問題

› 我的 TOML 檔案會被上傳嗎?

不會。剖析和轉換完全在你的瀏覽器中執行,所以 Cargo 資訊清單、pyproject 檔案和含有機密資訊的設定檔都不會離開你的裝置。

› 支援哪個 TOML 版本?

TOML 1.0,包括表格、表格陣列、行內表格、多行字串、日期與時間,以及十六進位、八進位和二進位整數。

› TOML 的日期會怎麼轉成 JSON?

JSON 沒有日期型別,所以日期和時間會變成 ISO 8601 字串。例如 2026-10-08 會保持為 "2026-10-08",1979-05-27T07:32:00Z 則變成 "1979-05-27T07:32:00.000Z"。

› 為什麼 JSON 轉 TOML 遇到 null 會失敗?

TOML 沒有 null 值。工具會停下來並告訴你第一個 null 的路徑,例如 database.password,讓你移除該鍵或給它一個值。

› 註解會保留嗎?

不會。TOML 中的註解會被丟棄,因為 JSON 無法容納註解;而 JSON 本身也沒有註解可以帶到 TOML。