.env 轉 JSON 工具
把 .env 檔案內容轉換成 JSON,支援型別推斷、巢狀鍵名,變數上一行的 # 註解也能一併保留,純瀏覽器端運算。
貼上 .env 檔案內容,工具會直接在瀏覽器裡即時轉成 JSON。預設會開啟型別推斷,DEBUG=true 會變成真正的布林值而不是字串 "true";像 DB.HOST 這種帶點號的鍵名會自動轉成巢狀物件;寫在某個變數正上方的 # 註解會收進 $comments 欄位,對應到該變數。三個選項都能個別關閉。全程不連網,轉換完全在你的瀏覽器本機完成。
關於 .env 轉 JSON 工具
.env 檔案說穿了就是一行行 KEY=VALUE 的純文字,寫起來輕鬆,但要餵給需要結構化組態的程式碼就很不方便。這個工具能解析 .env 語法——包含 # 註解、加引號的值,以及 = 和 : 兩種分隔符——直接產出一份可以塞進組態載入器、測試夾具或除錯過程的 JSON 物件。輸出由三個開關控制:型別推斷會把看起來像數字或布林值的字串轉成真正的 JSON 型別;點號鍵名巢狀化會把 FEATURE.CACHE.TTL 變成 { "FEATURE": { "CACHE": { "TTL": ... } } };註解處理則決定要不要保留原檔案裡用 # 寫下的說明。
你可能還需要
如何把 .env 轉換成 JSON
- 1
貼上 .env 內容
把 .env 檔案內容複製進輸入欄,或是點燒瓶圖示載入一份帶註解、數字和布林值的範例。
- 2
視需要調整進階選項
打開進階選項可以切換型別推斷、點號鍵名巢狀化(以及分隔符),還有註解要保留成 $comments 欄位還是直接忽略。預設值符合常見慣例:推斷型別、鍵名巢狀化、保留註解。
- 3
按下「轉換」
解析器逐行讀取 NAME=value:開頭的 export 會被拿掉,值後面的 # 註解也會刪除;寫在引號內或緊接在等號後的 # 則算作值的一部分。外層引號會被移除:雙引號內的 \n 和 \" 會還原成換行和引號,單引號內的內容原樣保留,加上引號的值也可以跨多行。緊貼在變數上方的 # 行會歸到該變數。之後再切換任何選項都會立刻重新轉換,不用再按一次「轉換」。
- 4
複製或下載 JSON
用複製圖示把 JSON 拿去貼到別處,或下載成 .json 檔。要反方向轉換?按切換方向圖示直接跳到 JSON 轉 Env。
參考資料
- The Twelve-Factor App — Config
這套廣受引用的方法論,推廣了把組態存進環境變數的做法,也是 .env 檔案這套慣例的源頭。
- dotenv (motdotla) — README
KEY=VALUE 行、# 註解、帶引號的值——這份 README 是 .env 檔案語法事實上的參考實作與規範。
- RFC 8259 — The JSON Data Interchange Format
這個工具產出的 JSON 格式所依據的 IETF 規範。
相關開發者工具
Env 轉 JSON 常見問題
- 要怎麼線上把 .env 檔案轉成 JSON?
- 把 .env 檔案的內容貼到輸入欄,按下「轉換」。工具會逐行解析 KEY=VALUE,在輸出欄產生格式化好的 JSON 物件,可以直接複製,也能下載成 .json 檔。
- 這個工具會把我的 .env 檔案上傳到伺服器嗎?
- 不會。解析完全在瀏覽器裡用 JavaScript 完成,不會針對檔案內容發出任何網路請求——這點很重要,因為 .env 檔案裡常常放著 API 金鑰、資料庫密碼這類機密資訊。
- .env 轉成 JSON 後註解還在嗎?
- 描述變數的註解會保留:變數上一行(或連續幾行)的 # 註解,會以該變數名稱為鍵收進 $comments。像「# --- 資料庫 ---」這種分組標題,如果下面空了一行,就對應不到任何變數,也不會出現在 JSON 裡;空行同樣不會保留。想丟掉全部註解,到進階選項把「註解」切成「忽略」即可。
- 布林值和數字轉換時是怎麼處理的?
- 預設開啟「推斷型別」,像 true、false、5432 這樣的值會被轉成真正的 JSON 布林值/數字,而不是字串。到進階選項關掉「推斷型別」,所有值都會原樣保留成字串,跟 .env 原文一致。
- 可以把帶點號的 .env 鍵名轉成巢狀 JSON 物件嗎?
- 可以。開啟「點號鍵名 → 巢狀」(預設分隔符是「.」)後,像 APP.CACHE.TTL=60 這種鍵會變成 { "APP": { "CACHE": { "TTL": 60 } } }。關掉這個開關就會保留原本扁平的點號鍵名。
- .env 和 JSON 在組態管理上有什麼差別?
- .env 檔案是一份扁平的 KEY=VALUE 清單,是為行程環境變數設計的(參見 The Twelve-Factor App 的組態理念),而 JSON 天生就支援巢狀結構和原生型別。轉換之後就能把 .env 的值當結構化資料查看、比對,或是餵給只吃 JSON 的工具鏈。
- 支援 .env 檔案裡帶引號的值嗎?
- 支援。像 NAME="My App" 這種用單引號或雙引號包起來的值,會在做型別推斷之前自動去掉外層引號。