實用工具

.env 轉 JSON 工具

將 .env 檔案轉成 JSON、docker -e 參數或 Compose 的 environment 區塊,也能把 JSON 轉回 .env,解析方式與 dotenv 完全相同。

瀏覽器本機執行資料格式2.1萬
免費

輸入

0 B

結果

結果會顯示在這裡。

.env 檔案看起來簡單到不可能寫錯,直到某個值裡出現 #、引號或換行。這個工具使用逐行移植自 motdotla/dotenv 的解析器來讀取——大多數 Node 專案都是用這個套件載入環境變數——所以你在這裡看到的,就是 process.env 實際會有的內容。可以轉成 JSON 交給密鑰管理服務或測試資料,轉成 docker run 的 -e 參數,或 Compose 檔案的 environment: 區塊;也可以反過來,把 JSON 物件轉成一份讀回時引號不會走樣的 .env 檔案。

它是怎麼運作的

  • 未加引號時,即使 # 出現在值的中間也會開始註解,這是 dotenv 的規則,也是 URL 被截斷的常見原因。
  • 單引號與反引號中的值按字面讀取;只有雙引號會把 \n 轉成真正的換行。
  • export KEY=value 和 KEY: value 兩種寫法都接受,同一個鍵定義兩次時保留最後一次的值——統計資訊會列出哪些鍵重複。
  • 既不是註解也不是變數的非空白行,會依列號列出,拼字錯誤不會悄悄消失。
  • Docker 參數會經過 shell 引號處理;Compose 輸出則會替 YAML 可能誤讀的值加上引號,因此 true、null 或 5432 會維持為字串,而不會變成布林值、null 或數字。

你的資料去了哪裡

哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。

本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。

它要花多少

本工具完全免費,不需要登入,也不消耗點數。

常見問題

為什麼我的 URL 在 # 處被截斷了?
在未加引號的值中,dotenv 會把出現在任何位置的 # 視為註解開頭,所以 URL=https://example.com/#section 會在斜線處結束。將值加上引號——URL="https://example.com/#section"——# 就會保留下來。
像私密金鑰這種多行的值要怎麼儲存?
可以用雙引號搭配 \n 跳脫字元寫在同一行,或用雙引號跨越多個真正的行,dotenv 兩種都能讀取。JSON 轉 .env 方向會寫成單行跳脫的形式,這種寫法貼進 CI 的密鑰設定也不會出問題;只有同時含有換行與雙引號的值,才會用反引號跨多行寫出,因為 dotenv 沒有其他方式能把它讀回來。
會展開 ${VARIABLE} 這類參照嗎?
不會,dotenv 本身也不會。展開是另一個套件 dotenv-expand 的工作,Docker Compose 則套用自己的插值規則。這裡顯示的值與 dotenv 的 parse 回傳結果完全相同,參照會以字面文字保留。
把正式環境的密鑰貼到這裡妥當嗎?
內容不會離開網頁——轉換過程中不會發出任何請求——但裝滿正式環境憑證的 .env,在任何地方都應該盡量少經手。先把值換成預留字串是個好習慣;結構的轉換方式完全相同。

背後的開源專案

本工具是獨立實作,並未打包第三方函式庫。motdotla/dotenv(BSD-2-Clause)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。

motdotla/dotenv

也常被稱作

  • .env 轉 json
  • env 轉 json
  • json 轉 env
  • dotenv 線上解析
  • env 檔轉 docker 環境變數
  • env 轉 docker compose