如果這個工具幫到了你,可以請作者喝杯咖啡 ☕
將JSON資料快速轉為TOML格式,適用於配置檔案遷移
tools.online-json-to-toml-converter.results.emptyMessage
你手頭有一份JSON格式的配置檔案(比如來自某個API的響應),但你想把它改成TOML格式——因為TOML更易讀、支援註釋,更適合長期維護的配置檔案。比如:從後端介面拿到一個使用者設定資料,需要儲存到伺服器的單檔案配置中;或者你在寫Rust、Python專案,它們的配置管理庫偏愛TOML。我們的線上轉換器能幫你一鍵完成這個轉換,不用手動逐行改格式。
JSON(JavaScript Object Notation)是一種輕量級資料交換格式,所有鍵值對必須用雙引號包裹,結構緊湊但不自帶註釋。TOML(Tom's Obvious Minimal Language)是專為配置檔案設計的格式,使用表(table)和陣列表(array of tables)來表達層次,支援#註釋,鍵名可以不加引號,對人工讀寫更友好。簡單說:JSON適合機器間傳輸,TOML適合人類編輯。
我們假設一個使用者資訊JSON:{"name": "張三", "age": 30, "active": true}。開啟我們的轉換器,在左側JSON輸入框中貼上這段內容(注意外層沒有方括號表示物件)。點選“轉換”按鈕,右側輸出框會顯示:
name = "張三"
age = 30
active = true轉換後的TOML每一行對應一個鍵值對,布林值true被轉換成小寫true(TOML規範本身也用小寫)。這個例子中所有欄位都在頂層,TOML不需要花括號,結構一目瞭然。
再來一個複雜點的JSON:{"server": {"host": "127.0.0.1", "port": 8080}, "tags": ["dev", "test"]}。轉換成TOML後:
[server]
host = "127.0.0.1"
port = 8080
tags = ["dev", "test"]這裏的server物件變成了一個TOML表([server]),其下的鍵直接跟在下面;陣列tags仍然保留陣列語法,注意TOML陣列內元素用逗號分隔且方括號在同一行。如果再巢狀一層物件陣列(比如多個使用者),TOML會使用[[users]]來標識。
轉換後你得到的TOML文字可以直接貼上到專案配置檔案(例如config.toml)中使用。解讀時注意:
- 頂層鍵沒有表頭,直接寫鍵值對。
- 巢狀物件{"a": {"b": 1}}變成[a]表,b = 1在其下。
- 物件陣列(如[{"x":1}, {"x":2}])變成[[arr]]表,每個陣列元素是一個單獨的表。
- 空物件、空陣列會被保留(空表或空陣列)。
- 重要:TOML 1.0 不支援JSON中的null值、浮點數特殊值(NaN, Infinity)、以及超大整數(超出64位有符號整數範圍)。如果你在JSON中用了這些,轉換器會顯示“不支援”提示並跳過該欄位。
| JSON語法 | TOML語法 | 示例 |
|---|---|---|
"key": value | key = value | "name": "Tom" → name = "Tom" |
{"sub": {}} | [sub] 空表 | → [sub] (空) |
[elem1, elem2] | [elem1, elem2] | 陣列語法基本一致 |
[{"k":1}, {"k":2}] | [[arr]] + k = 1 等 | 物件陣列 |
null | 不支援 | 會跳過或報錯 |
| 註釋:無 | # 註釋 | 可在行尾新增 |
1.0會被轉為1.0;1轉成整數1。TOML區分整數和浮點數,而JSON只有Number型別。轉換器會盡量保持原樣,但如果是1e2這種科學計數法,TOML也支援。true/false,JSON允許大寫或小寫。我們的轉換器一律輸出小寫。1979-05-27T07:32:00Z)。如果你在JSON裡用ISO 8601格式字串,轉換器不會自動識別,仍會當作字串處理。需要手動調整。[foo.bar.baz],需要注意可維護性。Q1: 轉換後資料會丟失嗎?
A: 大部分情況下完整保留,但TOML不支援null、NaN、Infinity和大於2^63-1的整數,這些欄位會被跳過或顯示警告。
Q2: 支援大JSON檔案嗎?
A: 線上工具受瀏覽器記憶體限制,建議檔案小於2MB。超大JSON建議用本地工具處理。
Q3: 我的JSON陣列裡全是字串,轉換後為什麼還是陣列?
A: TOML當然支援字串陣列,轉換後格式不變,只是把引號統一為雙引號(TOML規定字串須用雙引號)。
Q4: 轉換後TOML能直接用在Rust的toml庫或Python的tomllib中嗎?
A: 可以,我們的輸出符合TOML v1.0規範,多數主流語言解析器都能正確讀取。
Q5: 為什麼我的JSON有註釋(//)?
A: 標準JSON不支援註釋,如果你是從編輯器或帶註釋的JSONC檔案貼上的,請先移除註釋再貼上,否則轉換器會報JSON語法錯誤。
Q6: 這個工具會儲存我的資料嗎?
A: 所有轉換都在瀏覽器本地完成,不會上傳到伺服器,資料不會離開你的電腦。
本轉換器基於TOML v1.0規範(toml.io/en/v1.0.0)。不適用於以下場景:
- 需要保留null值的JSON(TOML無等價型別,建議改為空字串或預設值)。
- JSON中包含註釋(非標準,轉換前需手動清理)。
- 超大或深度巢狀的JSON(超過10層可能影響輸出可讀性)。
- 精度要求極高的財務數字(TOML浮點數使用64位雙精度,與JSON一致,但科學計算場景請另行校驗)。
如果你發現轉換結果不符合預期,請檢查JSON是否嚴格遵循JSON格式(例如鍵名必須有雙引號、末尾不能有逗號)。
現在你可以在上方計算器裡試試自己的數字。