使用 YAML 與 Java Properties 進行設定
這個轉換工具的功能
YAML 與 Java 的 .properties 是撰寫相同設定的兩種方式。properties 檔案每行儲存一組扁平的 鍵=值 配對,並以點來暗示階層(server.servlet.context-path=/api)。YAML 則以實際的縮排與巢狀結構來表達相同的階層。這個工具可讀取任一種格式,判斷你貼上的是哪一種,再改寫成另一種——把以點分隔的鍵展開成巢狀樹狀結構,或把樹狀結構重新攤平成以點分隔的路徑。
由於轉換是雙向的,且依據偵測到的結構而非固定範本進行,因此你可以讓檔案來回轉換(YAML → Properties → YAML)並取回對等的結果。
何時使用
最常見的情況是 Spring Boot 專案在 application.properties 與 application.yml 之間遷移。團隊通常從 properties 開始,等到設定變得夠深、以點分隔的鍵難以閱讀時,再切換到 YAML。反方向的轉換同樣好用,例如當某個工具或部署流程需要扁平的 properties 時。
它也很適合用來快速比對兩份設定、把文件中的片段轉成專案實際使用的格式,或在提交前統一縮排與陣列樣式。
範例:一個伺服器區塊
properties 的 server.port=8080 與 server.servlet.context-path=/api 兩行,會變成一個巢狀的 YAML 區塊,其中 server 包含 port: 8080,以及一個存放 context-path: /api 的 servlet 鍵。再轉換回去時,以點分隔的鍵會原封不動地重現。像 8080 這樣的數字會維持不加引號,以保留其整數型別,而不會變成字串。
格式注意事項與邊界情況
啟用該選項後,註解可在轉換過程中保留,這對有註解說明的設定檔很重要。陣列可輸出為 YAML 的破折號清單,或輸出為帶索引的 properties(name[0]、name[1])。可調整的縮排與字串引號處理(自動、一律、絕不)讓你能符合團隊的樣式規範。型別自動偵測可避免布林值、整數與 null 值被加上引號。