跳到正文
馬克工具箱

JSON 轉 TOML

把 JSON 轉換成 TOML,用於 Rust 的 Cargo.toml、Python 的 pyproject.toml、Hugo 和各類應用配置。巢狀物件變成 [表],物件陣列變成 [[表陣列]],JSON 有誤時會提示出錯的行號。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

JSON → TOML
輸出 (TOML)

使用步驟

  1. 在左側貼上 JSON,或點選「載入示例」。
  2. 右側即時生成 TOML;JSON 格式有誤時,會提示出錯所在的行。
  3. 複製或下載 TOML;點選「反向轉換」可以把 TOML 轉回 JSON。

引數說明

null 值
TOML 沒有 null。值為 null 的鍵和陣列元素會被省略,輸出第一行用註釋列出省略了哪些路徑。
頂層不是物件
TOML 文件的頂層必須是表。如果 JSON 頂層是陣列或單個值,會放到 items 鍵下,並在註釋裡說明。
表與表陣列
巢狀物件輸出為 [a.b] 形式的表,元素都是物件的陣列輸出為 [[a]] 表陣列,其餘陣列寫成行內陣列。

示例

JSON:

{"server":{"host":"0.0.0.0","port":8080},"databases":[{"name":"main","url":"postgres://db:5432/app"}]}

TOML:

[server]
host = "0.0.0.0"
port = 8080

[[databases]]
name = "main"
url = "postgres://db:5432/app"

常見問題

TOML 和 JSON 有什麼區別?

TOML 是為人手寫的配置格式,支援註釋、按節分組、日期時間型別,常用於 Cargo、pyproject、Hugo、Netlify 等。JSON 更適合程式之間傳資料,不支援註釋。

整數 1.0 為什麼變成了 1?

JSON 在 JavaScript 中解析後不區分 1 和 1.0,都會按整數輸出。需要浮點數的欄位請在 TOML 裡手動改成 1.0。

鍵的順序會變嗎?

普通鍵值保持 JSON 中的順序;按 TOML 規則,[表] 和 [[表陣列]] 必須寫在普通鍵值之後,所以它們會排到後面。

資料會上傳嗎?

不會。解析和轉換都在瀏覽器中完成,包含令牌、密碼的配置也不會外洩。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具