.properties 轉 JSON 工具
把 Java .properties 檔案轉換成 JSON,支援無損解析、巢狀鍵名與註解保留,純瀏覽器端運算。
貼上一份 Java .properties 檔案,工具會在瀏覽器裡即時轉成 JSON。像 app.cache.ttl 這種帶點號的鍵名預設會變成巢狀物件,看起來像數字或布林值的內容會被推斷成真正的 JSON 型別,註解行會保留成 $comments 欄位,原檔案裡寫的說明一條都不會少。底層解析器是無損的,註解、空行和鍵名順序都會跟 Java 自己的 java.util.Properties 讀出來的結果完全一致。
關於 Properties 轉 JSON 工具
Java 的 .properties 格式(key=value、key:value 或 key value,註解用 # 或 !)從 java.util.Properties API 早期就一直是標準的組態與 i18n 資源包格式。這個工具照 JVM 同一套規則解析——包含用反斜線續行的多行值,以及 \uXXXX 這類 Unicode 逸出——產出可以查看、比對,或餵給 JavaScript 建置流程的 JSON。開啟點號鍵名巢狀化後,app.cache.ttl=60 會變成 { "app": { "cache": { "ttl": 60 } } };型別推斷會把 "false" 變成真正的布林值;註解處理則決定要不要把記錄每個屬性說明的 # 行保留成 $comments 欄位。
你可能還需要
貼上一份 Java .properties 檔案,工具會在瀏覽器裡即時轉成 JSON。像 app.cache.ttl 這種帶點號的鍵名預設會變成巢狀物件,看起來像數字或布林值的內容會被推斷成真正的 JSON 型別,註解行會保留成 $comments 欄位,原檔案裡寫的說明一條都不會少。底層解析器是無損的,註解、空行和鍵名順序都會跟 Java 自己的 java.util.Properties 讀出來的結果完全一致。
如何把 .properties 轉換成 JSON
- 1
貼上 .properties 內容
把 .properties 檔案內容複製進輸入欄,或點燒瓶圖示載入一份帶註解和點號鍵名的範例。
- 2
視需要調整進階選項
打開進階選項可以切換型別推斷、點號鍵名巢狀化(以及分隔符),還有註解要保留成 $comments 還是忽略。
- 3
按下「轉換」
無損解析器會照檔案原本的順序讀取屬性、註解和空行,產生一個 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 檔。
- 這個工具解析的規則跟 Java Properties 檔案格式完全一致嗎?
- 是的。解析規則跟 java.util.Properties 完全一樣:鍵和值可以用 =、: 或空白分隔,註解以 # 或 ! 開頭,多行值可以用反斜線續行。
- 我的 .properties 檔案會被上傳到伺服器嗎?
- 不會。所有解析都在瀏覽器裡用 JavaScript 本機完成,不會有任何資料經過網路傳送——這點對含有內部主機名稱或憑證的 properties 檔案特別重要。
- 可以把帶點號的 .properties 鍵名轉成巢狀 JSON 物件嗎?
- 可以。開啟「點號鍵名 → 巢狀」(預設分隔符是「.」)後,像 server.port=8080 這種鍵會變成 { "server": { "port": 8080 } }。關掉這個選項,扁平的點號鍵名會當作單一 JSON 欄位保留下來。
- .properties 轉 JSON 會保留註解嗎?
- 預設會——註解行會掛在它前面緊接著的那個屬性上,收進輸出的 $comments 欄位。想要一份乾淨、只有值的 JSON,可以到進階選項把「註解」切成「忽略」。
- .properties 裡的布林值和數字是怎麼處理的?
- 開啟「推斷型別」後,像 true、false,或是 1.2.3 這種看起來像版本號的數值,會在合法的情況下被轉成 JSON 布林值和數字。關掉「推斷型別」,所有值都會原樣保留成字串,跟 .properties 原文一致。
- .properties 和 JSON 有什麼差別?
- Java 的 .properties 是行導向的鍵值文字,常用於應用程式組態和 i18n 資源包;JSON 天生支援巢狀結構和有型別的值。轉換之後就能把 properties 檔案當結構化資料比對,或匯入需要 JSON 的 JavaScript/TypeScript 工具鏈。