使用方式
- 貼上 JSON 物件,或試試範例。
- 如果你的 JSON 含有你不需要的 null,請開啟「省略 null 值」。
- 複製 TOML,或下載為 .toml 檔案。
運作方式
JSON 會先以嚴格模式解析,然後使用開源 smol-toml 程式庫寫成 TOML 1.0。巢狀物件會轉為 [tables],物件陣列會轉為 [[arrays of tables]],不屬於純文字的鍵會加上引號。
TOML 無法表達 JSON 的所有內容。文件根必須是 table,因此 JSON 陣列或單一值會遭到拒絕。TOML 中沒有 null:預設會回報第一個 null 及其路徑;你也可以選擇省略 null 物件成員。陣列中的 null 一律視為錯誤,因為移除它會改變其他元素的位置。混合型別(例如數字與字串)的陣列在 TOML 1.0 中有效,但在舊版 0.5 中無效,因此會以附註標示。
JSON 無法區分 1 與 1.0,因此整數會寫成 TOML 整數。看似日期的字串仍保留為字串。反向轉換則為 TOML 轉 JSON。
範例
應用程式設定
{"server": {"host": "0.0.0.0", "port": 8080}} 會變成包含 host 和 port 鍵的 [server] table。
工作者清單
"workers": [{"queue": "mail"}, {"queue": "images"}] 會變成兩個 [[workers]] 區塊。
常見問題
為什麼不允許 null?
TOML 沒有 null 值。請省略該鍵,或使用空字串等值,視讀取程式的要求而定。
為什麼數字與字串組成的陣列會顯示附註?
混合型別陣列在 TOML 1.0 中已允許,但實作 TOML 0.5 的工具會拒絕。如果目標工具較舊,這項附註會有幫助。
1.0 會保持浮點數嗎?
不會。JSON 將 1.0 與 1 視為同一個數字,因此會變成整數 1。如果讀取程式需要浮點數,請寫成 1.5 或編輯 TOML。
隱私權
轉換完全在您的瀏覽器中執行。您的 JSON 與 TOML 不會被上傳或儲存。