轉換設定格式,先把損失說清楚
YAML 格式化與驗證工具|TOML、JSON 線上互轉
YAML、TOML 與 JSON 可以描述相似的資料,卻不是換個副檔名就能等價互轉。DevSexy 會先解析成共同的資料結構,再提醒你哪些註解、日期與格式專屬語法無法原樣帶到目標格式。
service: port: 8080 enabled: true
物件 └─ service ├─ port: 數字 └─ enabled: 布林值
[service] port = 8080 enabled = true
三種語法,先落到同一份有型別的資料
看起來相同的值,解析後不一定是同一種型別
引號、YAML schema、日期寫法與前置零都會影響解析結果。轉換部署設定前,先在樹狀檢視中確認程式最後讀到的是字串、數字、布林值,還是日期。
enabled: yes依 YAML schema 而定,可能是字串,也可能被判斷成布林值。
released = 1979-05-27TOML 原生支援不含時區的日期;轉成 JSON 時只能以字串呈現。
code: 0017解析器即使接受前置零,它也可能代表編號格式,而不只是數值 17。
匯出前的轉換損失清單
工具會區分可保留的資料結構與需要人工複核的格式特性,不會把跨格式轉換預設說成「無損」。
PRESERVED MODEL
- 對應表、陣列、字串、布林值與一般有限數字
- 目標格式能表達時,可保留穩定的巢狀結構
REVIEW BEFORE EXPORT
- 註解與原作者的排版方式
- YAML 錨點、別名、標籤與合併鍵
- TOML 日期、時間、點分鍵與表格陣列版面
依實際讀取設定的系統選擇目標格式
CI 與部署設定
在流水線讀取檔案前檢查 YAML 縮排與純量型別,避免同一個值在不同環境被解讀成不同意思。
應用程式設定
當專案生態偏好明確型別與表格結構時,可使用 TOML;轉換後仍要複核日期、時間與表格陣列。
程式間資料交換
當嚴格語法與廣泛相容性比註解更重要時,可轉成 JSON,並先決定特殊型別要如何降級。
YAML / TOML 格式化與互轉常見問題
- YAML 轉 TOML 或 JSON 時會保留註解嗎?
- 不會。這項工具會先將內容解析成資料值,再重新產生目標格式;註解與原始排版不會保留,匯出前請依損失清單逐項複核。
- 為什麼有效的 YAML 轉換後型別變了?
- YAML schema 會判斷純量型別。請先查看樹狀結構;如果數字、日期或布林值寫法必須維持文字,就應明確加上引號。
- TOML 可以表示 null 嗎?
- TOML 沒有通用的 null 值。遇到 JSON null 時,應由設定的讀取端決定省略欄位、套用預設值,或改用另一種表示方式,不能靜默轉換。