什麼是JSON轉YAML?
JSON 轉 YAML 轉換器可將 JSON 資料轉換為簡潔易讀的 YAML 格式,該格式常用於設定檔(Docker Compose、Kubernetes、CI/CD 流水線)。它能處理巢狀物件、陣列以及多行字串,並生成符合 YAML 語法的輸出。
工具底層使用 js-yaml,能處理多行字串、錨點與物件陣列,不會丟結構。縮排可選 2 或 4 個空格(多數設定檔用 2)。流式樣式讓短陣列保持單行([a, b, c]),區塊樣式則每個元素獨佔一行。還有「排序鍵」選項,便於版本控制中的穩定輸出。
使用方法
- 第一步——貼上 JSON 資料或上傳 .json 檔案。無效的 JSON 會在轉換前被捕捉並加以標示。
- 第二步——設定縮排寬度(2 個或 4 個空格),並選擇流樣式選項以使陣列更緊湊或物件內聯。
- 第三步——查看帶有語法醒目提示的 YAML 輸出,然後複製或下載為 .yaml 檔案以用於設定檔中。
何時使用
- 把 package.json 或 tsconfig.json 的片段翻成 CI 工具所要的 YAML 形式。
- 由 API 回應或鷹架產生的 JSON 寫出 Kubernetes manifest 或 Docker Compose 檔。
- 把舊工具的 JSON 設定轉成新工具用的、更易讀的 YAML。
結果
您需要將 package.json 轉換為 CI 流水線的 YAML 設定。貼上 JSON,設定 2 格縮排,即可獲得清晰的 YAML 輸出,巢狀的相依套件一目了然,無需那些繁雜的大括號和引號。
常見問題
- YAML 其實只是換種寫法的 JSON 嗎?
- 差不多。YAML 1.2 是 JSON 的超集,任何合法 JSON 都是合法 YAML。YAML 多了註解、多行字串、錨點別名與以縮排為主的版式。對純資料來說,兩者可互換。
- 我該用 2 個空格還是 4 個空格縮排?
- Kubernetes、Docker Compose、GitHub Actions 與多數 CI 工具都使用 2 個空格。4 個空格在很深的巢狀檔案中更易讀但少見。跟著團隊既有檔案的設定,diff 才會乾淨。
- 什麼情況下改用流式樣式?
- 流式樣式({a: 1, b: 2})適合短的純值陣列——例如連接埠列表——區塊樣式裡會顯得囉嗦。需要人眼閱讀或手動編輯的內容仍建議用區塊樣式。
- 看起來像布林值或數字的字串會怎樣?
- YAML 的型別推斷較激進:'yes'、'no'、'on'、'1.0'、'null' 會被重新解釋。工具會自動為這類字串加上引號,避免經典的「挪威」問題:國碼 NO 被解析成 false。
- JSON 和 YAML 互轉會掉資料嗎?
- 純資料不會,結構會保留。會丟失的是註解(JSON 本來沒有)與部分鍵的順序(JSON parser 可能重排)。若要穩定順序,兩端都啟用「排序鍵」即可。