JSON 轉 Properties 工具

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

輸入 JSON 物件,就能產生 java.util.Properties 與 Spring Boot 都能讀取的 Java .properties 設定檔。巢狀物件會變成 server.port=8080 這種點號鍵;分隔字元和換行都以反斜線跳脫,數值來回轉換後依然不變;$comments 對照表則寫回成 # 註解行。轉換在瀏覽器內執行,不會上傳任何資料。

JSON 輸入

上傳

進階選項轉換清除

.properties 輸出

結果會顯示在這裡...

複製下載

結果會顯示在這裡...

關於 JSON 轉 Properties 工具

.properties 是一行一行解析的格式,因此序列化時,只要會影響 Java 切分一行的字元都必須跳脫:鍵裡的空白寫成 \ (反斜線加空白),值裡的 = 或 : 寫成 \= 或 \:,換行寫成 \n。鍵與值之間一律用 = 連接,巢狀 JSON 物件則依原本順序展平成點號鍵。café 這類非 ASCII 文字會直接以 UTF-8 寫出,不會轉成 \uXXXX 跳脫序列。Java 9 之後的版本以 UTF-8 讀取 resource bundle,但 Properties.load(InputStream) 是用 ISO-8859-1 解碼,所以在自己的程式碼裡載入時,請透過 UTF-8 的 Reader 讀取。

你可能還需要

Properties 轉 JSON

把 Java .properties 檔案轉換成 JSON,點號鍵名轉為巢狀物件,數字與布林值自動推斷型別。

開啟工具

JSON 轉 Env

把 JSON 物件轉換成 .env 的 KEY=VALUE 格式,支援點號鍵名展平。

開啟工具

JSON 格式化和驗證器

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

開啟工具

YAML 轉 JSON

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

開啟工具

如何把 JSON 轉換成 .properties

  1. 1

    準備 JSON 物件

    在輸入欄貼上物件,或按燒瓶圖示載入 { "server": { "port": 8080 } } 範例;最外層的每個鍵都會成為屬性名稱。

  2. 2

    設定鍵的分隔符號

    進階選項可以保留 Java 慣用的點號(spring.datasource.url 就是這種寫法)、換成其他分隔符號,或關閉展平,讓巢狀物件以 JSON 文字保留。

  3. 3

    轉換並檢查跳脫

    按下「轉換」後,每個末端值寫成一行 key=value;鍵裡的空白、值裡的分隔字元與換行都會加上反斜線,java.util.Properties 讀回來的值和原本一致。

  4. 4

    放進 src/main/resources

    複製輸出內容,或下載成 .properties 檔放到 src/main/resources;需要再轉回 JSON 時,按切換方向圖示。

參考資料

相關開發者工具

JSON 轉 Properties 常見問題

哪些字元前面會加上反斜線?
鍵裡的空白、值裡的 = 和 :,以及換行字元。例如 a\ b=x\=y、note=line1\nline2,這些正是 java.util.Properties 載入檔案時會還原的跳脫寫法。
中文等非 ASCII 字元會寫成 \uXXXX 嗎?
不會,會直接以 UTF-8 寫出原文。Java 9 之後是以 UTF-8 載入 .properties 的 resource bundle;但 java.util.Properties#load(InputStream) 預設用 ISO-8859-1 解碼,若你的程式用的是這個 API,請改用 load(Reader) 搭配 UTF-8 的 Reader。
可以從 JSON 產生 Spring Boot 的 application.properties 嗎?
可以。Spring Boot 的屬性名稱本來就是點號命名,使用預設的點號分隔符號時,{ "server": { "port": 8080 } } 會變成 server.port=8080。
JSON 陣列會寫成 hosts[0]=a 這種索引格式嗎?
不會。陣列會當成單一值寫出,內容就是它的 JSON 文字,例如 hosts=["a","b"];Spring Boot 的 hosts[0]=a 索引寫法不會產生。
server.port=8080 裡的 8080 還算數字嗎?
.properties 的值永遠是字串,所以 true、false 和數字都以純文字寫出。用 Properties 轉 JSON 並開啟型別推斷,就能還原成真正的 JSON 型別。
$comments 裡的說明會怎麼處理?
會寫成對應鍵上方的 # 註解行,Properties 轉 JSON 產出的 $comments 物件因此能原樣帶回來。把「註解處理」設為「忽略」,輸出就只剩 key=value 行。
轉換時資料會傳到伺服器嗎?
不會。解析和格式化全在瀏覽器本機完成,不會發出任何夾帶你資料的網路請求。