tigtools

JSON 轉 TOML 轉換器

貼上 JSON 物件,即可取得包含表格與表格陣列的 TOML。TOML 無法表示的值會明確標示,而不會悄悄變更。

在瀏覽器中執行 免註冊

改為將 TOML 轉換為 JSON

使用方式

  1. 貼上 JSON 物件,或試試範例。
  2. 如果你的 JSON 含有你不需要的 null,請開啟「省略 null 值」。
  3. 複製 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 不會被上傳或儲存。