什麼是JSON轉YAML?

JSON 轉 YAML 轉換器可將 JSON 資料轉換為簡潔易讀的 YAML 格式,該格式常用於設定檔(Docker Compose、Kubernetes、CI/CD 流水線)。它能處理巢狀物件、陣列以及多行字串,並生成符合 YAML 語法的輸出。

工具底層使用 js-yaml,能處理多行字串、錨點與物件陣列,不會丟結構。縮排可選 2 或 4 個空格(多數設定檔用 2)。流式樣式讓短陣列保持單行([a, b, c]),區塊樣式則每個元素獨佔一行。還有「排序鍵」選項,便於版本控制中的穩定輸出。

使用方法

  1. 第一步——貼上 JSON 資料或上傳 .json 檔案。無效的 JSON 會在轉換前被捕捉並加以標示。
  2. 第二步——設定縮排寬度(2 個或 4 個空格),並選擇流樣式選項以使陣列更緊湊或物件內聯。
  3. 第三步——查看帶有語法醒目提示的 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 可能重排)。若要穩定順序,兩端都啟用「排序鍵」即可。

相關工具