JSON 轉 Env 工具

把 JSON 物件轉換成 .env 的 KEY=VALUE 格式,支援巢狀物件展平與註解回填,純瀏覽器端運算。

貼上 JSON 物件,就能產生 dotenv 這類載入器在程式啟動時讀取的 .env 環境變數。巢狀物件會串成 db.host 這種帶點號的變數名稱,陣列寫成單行 JSON 文字,true、false 與數字則以純文字寫出;Env 轉 JSON 產生的 $comments 對照表,會還原成每個變數上方的 # 註解。整個轉換在瀏覽器內完成,JSON 裡的金鑰不會離開你的裝置。

JSON 輸入

上傳

進階選項轉換清除

.env 輸出

結果會顯示在這裡...

複製下載

結果會顯示在這裡...

關於 JSON 轉 Env 工具

環境變數只能存放單層的字串,所以把 JSON 轉成 .env,重點其實是每個變數該怎麼命名。開啟展平時,巢狀路徑的每一層都會用分隔符號接起來:{ "app": { "cache": { "ttl": 60 } } } 會變成 app.cache.ttl=60,而且鍵名大小寫完全照 JSON 原樣保留,不會自動轉成大寫。要特別注意,shell 沒辦法使用名稱裡帶點號的變數;如果這個設定檔會被 shell 腳本 source,請把分隔符號改成底線,得到 app_cache_ttl。關閉展平的話,巢狀物件就不再拆開,整個以單行 JSON 文字寫在等號後面。

你可能還需要

Env 轉 JSON

把 .env 檔案轉換成 JSON,支援型別推斷與巢狀鍵名。

開啟工具

JSON 轉 Properties

把 JSON 物件轉換成 Java .properties 格式,支援點號鍵名展平。

開啟工具

JSON 格式化和驗證器

格式化、驗證和視覺化 JSON 資料。

開啟工具

YAML 轉 JSON

將 YAML 轉換為 JSON 或將 JSON 轉換為 YAML。

開啟工具

如何把 JSON 轉換成 .env

  1. 1

    貼上 JSON 物件

    輸入欄只接受物件,陣列或單一值都不行;也可以按燒瓶圖示,載入一份只有 API 金鑰和連接埠的單層範例。

  2. 2

    決定變數命名方式

    在進階選項中,保留點號會得到 db.host 這類 dotenv 風格的名稱;改用底線會得到 shell 也能用的 db_host;也可以關閉展平,讓巢狀物件維持 JSON 文字。

  3. 3

    產出 NAME=value

    按下「轉換」,每個末端值各自成為一行,順序和 JSON 原本的鍵順序相同;$comments 的項目會以 # 行出現在它所說明的變數正上方。含有換行、前後空白或 # 的值會加上引號(換行寫成 \n),轉回 JSON 時能原樣讀出。

  4. 4

    存檔並妥善保管

    複製文字或下載成 .env 檔;內含帳密等憑證時,記得不要加進版本控制。要轉回 JSON,按切換方向圖示即可。

參考資料

相關開發者工具

JSON 轉 Env 常見問題

變數名稱會被改成全大寫嗎?
不會。鍵名一律沿用 JSON 裡的大小寫,{ "db": { "host": "x" } } 產生的是 db.host=x。Linux 與 macOS 的環境變數名稱有區分大小寫,所以 JSON 的鍵請直接寫成應用程式讀取時用的大小寫。
產生的 .env 可以直接被 shell 腳本 source 嗎?
要每個名稱都是合法的 shell 識別字才行:只能有英文字母、數字和底線,而且不能以數字開頭。像 db.host 這種帶點號的名稱,用 Node.js 的 dotenv 載入沒問題,但 shell 不會把它當成指派敘述。預計要 source 的檔案,請改用底線當分隔符號。
陣列會被拆成好幾個變數嗎?
不會。展平開啟時,巢狀物件會拆成多個點號變數,陣列則整個寫成單行 JSON 文字,例如 tags=["a","b"]。展平關閉時,巢狀物件同樣以 JSON 文字原封不動保留。
輸出的變數順序會被打亂嗎?
不會。每個末端值都依照它在 JSON 裡原本的順序,逐一寫成一行 NAME=value,產生的 .env 和原始 JSON 可以直接對照閱讀。
true 或 8080 寫進 .env 之後還有型別嗎?
沒有。.env 檔案本身沒有型別概念,true、false 和數字都以純文字寫出。之後用 Env 轉 JSON 讀回來時,只要開啟型別推斷,就會重新變成真正的布林值與數字。
原本的 # 註解能還原嗎?
可以。JSON 裡若有 $comments 物件(例如 Env 轉 JSON 的輸出結果),每一筆都會變成對應變數上方的 # 行。只想要乾淨的 NAME=value,就到進階選項把「註解處理」設為「忽略」。
含有 API 金鑰的 JSON 會被上傳嗎?
不會。轉換是在你的瀏覽器本機進行。.env 檔案通常放著 API 金鑰和資料庫密碼,所以這點特別重要。
為什麼會出現變數名稱無效的提示?
變數名稱為空,或含有空白、=、:、#、引號、反斜線時,寫進 .env 後就無法原樣讀回,所以轉換會停下來並指出是哪個鍵,而不是寫出一行壞掉的資料。請在 JSON 裡改掉這個鍵名;如果是分隔符號帶進了這個字元,就換一個分隔符號。