什麼是YAML 轉 JSON 轉換器?

YAML 轉 JSON 轉換工具可將 YAML 文件即時轉換為等效的 JSON 結構。它支援錨點、別名、多行字串、巢狀對應和序列,方便將 Kubernetes 設定、CI/CD 管線或其他 YAML 資料轉換為 JSON 供 API 和程式碼使用。

工具基於 js-yaml,能識別 YAML 1.2 進階特性,包括錨點和別名(&ref / *ref)、多行區塊字串(| 和 >)、明確型別標籤,以及 yes/no/on/off 這類布林寫法。還有反向模式可把 JSON 轉回 YAML,保留結構,並把純標量陣列合併到一行,讀起來更舒服。

使用方法

  1. 步驟一 — 貼上 YAML 內容或上傳 .yml/.yaml 檔案。語法錯誤會標註行號,方便快速修正。
  2. 步驟二 — 檢視轉換後的 JSON 輸出,可設定縮排:2 個空格、4 個空格、定位字元或緊湊格式。
  3. 步驟三 — 複製 JSON 或下載為 .json 檔案。使用反向模式可將 JSON 轉回 YAML。

何時使用

  • 把 Kubernetes manifest 或 Helm values 檔轉成 JSON,給自家驗證腳本用。
  • 把 GitHub Actions 或 GitLab CI 設定餵給只接受 JSON 管線的工具。
  • 在 YAML 和 JSON 間切換,排查 docker-compose 的 schema 錯誤。

結果

您需要將 docker-compose.yml 轉換為 JSON 以提交給部署 API。貼上包含服務、磁碟區和網路定義的 YAML,即可獲得 API 可接受的有效 JSON,所有巢狀結構和陣列都完整保留。

常見問題

支援 YAML 的錨點和別名(& 和 *)嗎?
支援。js-yaml 在解析時就會展開錨點,所以輸出的 JSON 是實際資料,而不是引用語法。兩個 key 在 YAML 中共用一個錨點,在 JSON 中會各自擁有完整副本。
為什麼 YAML 布林(yes / no)在某些工具裡會變字串?
YAML 1.1 把 yes/no/on/off 視為布林,YAML 1.2 只認 true/false。本工具依 1.2 處理,所以 yes/no 預設是字串,除非顯式寫成 true/false。「挪威 bug」之類的陷阱在這裡通常就消失了。
可以把 JSON 轉回 YAML 嗎?
可以。打開反向開關,輸入變成 JSON、輸出 YAML。匯出時保留巢狀物件和陣列,有換行的長 key 會輸出成區塊字串(|),維持可讀性。
日期和時間戳怎麼處理?
YAML 的日期和時間戳字面值會變成 ISO 8601 字串(JSON 沒有原生日期型別)。透過反向模式來回轉換會保持字串,而不是還原為 YAML 隱式日期型別,這樣更安全。
縮排選項怎麼挑?
2 個空格是 JavaScript 和大多數 API 的事實標準。4 個空格符合 Python PEP 8,適合嵌入 .py 檔。緊湊(0)輸出單行,適合 HTTP 請求 body 或直接貼進 curl 命令。Tab 用真正的定位字元縮排 JSON,方便 Go 或 Makefile;YAML 不能用定位字元,所以反向模式會改用 2 個空格。

相關工具