.properties 轉 JSON 工具
把 Java .properties 檔案轉換成 JSON,支援點號鍵名巢狀化與型別推斷,鍵上方的註解保留為 $comments,純瀏覽器端運算。
貼上一份 Java .properties 檔案,工具會在瀏覽器裡即時轉成 JSON。像 app.cache.ttl 這種帶點號的鍵名預設會變成巢狀物件,看起來像數字或布林值的內容會被推斷成真正的 JSON 型別。緊貼在某個屬性上方的註解會掛到這個鍵,收進 $comments 欄位;跟下一個屬性之間隔著空行的註解區塊(例如檔案開頭的版權宣告)以及空行本身,都不會出現在 JSON 裡。鍵與值照 java.util.Properties 的語法規則讀取:=、: 或空白分隔,# 和 ! 開頭的註解,行尾反斜線續行,\uXXXX 逸出。
關於 Properties 轉 JSON 工具
Java 的 .properties 格式(key=value、key:value 或 key value,註解用 # 或 !)從 java.util.Properties API 早期就一直是標準的組態與 i18n 資源包格式。這個工具照 java.util.Properties 規定的語法解析——包含用反斜線續行的多行值,以及 \uXXXX 這類 Unicode 逸出——產出可以查看、比對,或餵給 JavaScript 建置流程的 JSON。開啟點號鍵名巢狀化後,app.cache.ttl=60 會變成 { "app": { "cache": { "ttl": 60 } } };型別推斷會把 "false" 變成真正的布林值;註解處理則決定要不要把緊貼在屬性上方、說明該屬性的 # 或 ! 行收進 $comments 欄位。
你可能還需要
如何把 .properties 轉換成 JSON
- 1
貼上 .properties 內容
把 .properties 檔案內容複製進輸入欄,或點燒瓶圖示載入一份帶註解和點號鍵名的範例。
- 2
視需要調整進階選項
打開進階選項可以切換型別推斷、點號鍵名巢狀化(以及分隔符),還有註解要保留成 $comments 還是忽略。
- 3
按下「轉換」
解析器照檔案順序讀取每個屬性:接上反斜線續行、解碼 \uXXXX 等逸出,把緊貼在屬性上方的註解掛到對應的鍵,再產生 JSON 物件。之後切換任何選項都會立刻重新計算。
- 4
複製或下載 JSON
複製 JSON,或下載成 .json 檔。按切換方向圖示可以跳到 JSON 轉 Properties 做反向轉換。
參考資料
- Java SE — java.util.Properties
官方 Java API 文件,定義了 .properties 檔案格式,包含本解析器遵循的註解語法、分隔符和續行規則。
- RFC 8259 — The JSON Data Interchange Format
這個工具產出的 JSON 格式所依據的 IETF 規範。
相關開發者工具
Properties 轉 JSON 常見問題
- 要怎麼線上把 Java .properties 檔案轉成 JSON?
- 把 .properties 檔案的內容貼到輸入欄,按下「轉換」。每一行 key=value 都會變成一個 JSON 欄位,點號鍵名預設會被巢狀化。複製結果,或下載成 .json 檔。
- 解析 .properties 的方式跟 Java 一樣嗎?
- 鍵和值的讀法一樣:可以用 =、: 或空白分隔,# 或 ! 開頭的是註解,行尾反斜線代表下一行接著寫,\uXXXX 會被解碼;同一個鍵出現兩次時以後面的值為準,這點也跟 Properties.load 相同。不過 JSON 並不是原檔案的完整複本:空行,以及沒有緊貼在屬性上方的註解,都不會保留下來。
- 我的 .properties 檔案會被上傳到伺服器嗎?
- 不會。所有解析都在瀏覽器裡用 JavaScript 本機完成,不會有任何資料經過網路傳送——這點對含有內部主機名稱或憑證的 properties 檔案特別重要。
- 可以把帶點號的 .properties 鍵名轉成巢狀 JSON 物件嗎?
- 可以。開啟「點號鍵名 → 巢狀」(預設分隔符是「.」)後,像 server.port=8080 這種鍵會變成 { "server": { "port": 8080 } }。關掉這個選項,扁平的點號鍵名會當作單一 JSON 欄位保留下來。
- .properties 轉 JSON 會保留註解嗎?
- 只保留屬於某個屬性的註解:緊貼在鍵上方、中間沒有空行的那段 # 或 ! 註解,會以該鍵的點號路徑為鍵名收進 $comments。檔案開頭的說明、後面接著空行的註解區塊、檔案最後的註解,以及空行本身都不會保留。想要一份只有值的 JSON,可以到進階選項把「註解」切成「忽略」。
- .properties 裡的布林值和數字是怎麼處理的?
- 開啟「推斷型別」後,只有剛好寫成 true、false 的值會變成布林值,只有 8080、0.75 這類一般十進位數字會變成數字。轉回文字時會走樣的值——1.0、007,以及 1.2.3 這種版本號——仍然是字串。關掉「推斷型別」,所有值都會保留成字串。
- .properties 和 JSON 有什麼差別?
- Java 的 .properties 是行導向的鍵值文字,常用於應用程式組態和 i18n 資源包;JSON 天生支援巢狀結構和有型別的值。轉換之後就能把 properties 檔案當結構化資料比對,或匯入需要 JSON 的 JavaScript/TypeScript 工具鏈。