YAML ↔ JSON 轉換器

線上 YAML 和 JSON 雙向轉換工具。支援 Docker Compose、Kubernetes、GitHub Actions 等 DevOps 設定檔的即時轉換,提供語法醒目提示和驗證功能。

最後更新: 2026/01/28

YAML ↔ JSON 轉換器

縮排
已自動儲存
YAML 輸入
1
等待輸入…
JSON 輸出
1
轉換結果將顯示在這裡
輸入長度: 0
輸出長度: 0
行數: 0

所有轉換均在瀏覽器中處理,不會將任何資料傳送到伺服器。 可安全轉換 Docker Compose、Kubernetes 清單、CI/CD 設定等 DevOps 檔案。

什麼是 YAML ↔ JSON 轉換器?

YAML ↔ JSON 轉換器是一款線上工具,可即時在 YAML 和 JSON 格式之間進行轉換。它讓您能夠輕鬆轉換 Docker、Kubernetes、GitHub Actions 等 DevOps 環境中廣泛使用的設定檔格式。

YAML(YAML Ain’t Markup Language)是一種人類可讀的資料序列化格式,其特點是基於縮排的簡潔語法。JSON(JavaScript Object Notation)是一種輕量級格式,廣泛用於程式語言之間的資料交換。兩種格式是相容的,您可以根據情況轉換為適當的格式。

使用情境

  • Docker Compose 設定 – 將 docker-compose.yml 檔案轉換為 JSON 以進行程式化處理,或將 JSON 設定轉換為 YAML 以提高可讀性
  • Kubernetes 清單 – 將 kubectl JSON 輸出轉換為 YAML,或將 YAML 清單用作 JSON API 請求主體
  • GitHub Actions 工作流程 – 以 JSON 分析 .github/workflows/*.yml 檔案,或將 JSON 範本轉換為 YAML 工作流程
  • CI/CD 管道 – 將 Jenkins、GitLab CI、CircleCI 的 YAML 設定轉換為 JSON 以進行腳本處理
  • API 開發 – 在 YAML 和 JSON 之間轉換 OpenAPI/Swagger 規格
  • 設定遷移 – 將基於 JSON 的設定遷移到 YAML,反之亦然
  • 資料驗證 – 即時檢查和除錯 YAML 或 JSON 語法錯誤
  • 學習和理解 – 將 YAML 結構轉換為 JSON 以清楚地理解資料層次結構

主要功能

  • 雙向轉換 – 支援從 YAML 到 JSON 和從 JSON 到 YAML 的轉換。使用頂部的切換按鈕可輕鬆切換轉換方向。
  • 即時驗證 – 在您輸入時偵測並顯示語法錯誤。有效輸入顯示為綠色,錯誤顯示為紅色。
  • DevOps 範例 – 提供 5 個實用範例,包括 Docker Compose、Kubernetes Deployment/Service/ConfigMap 和 GitHub Actions。一鍵載入範例以測試功能。
  • 語法醒目提示 – 為 YAML 和 JSON 的關鍵字、字串、數字、布林值和空值套用顏色。YAML 錨點(&)、別名(*)和註解(#)也會醒目提示。
  • 縮排選項 – 選擇 2 空格或 4 空格縮排以符合您的團隊或專案程式碼風格。
  • 行號 – 輸入和輸出兩側都顯示行號,方便參照特定行。
  • 檔案上傳/下載 – 直接上傳 .yaml、.yml 或 .json 檔案,並將轉換結果下載為檔案。
  • 輸入/輸出交換 – 使用「交換」按鈕將輸出結果帶到輸入以進行連續工作。
  • 自動儲存 – 正在編輯的內容會自動儲存到瀏覽器,並在重新整理頁面時還原。
  • 剪貼簿複製 – 一鍵將轉換結果複製到剪貼簿。

使用方法

  1. 選擇轉換方向 – 在頂部選擇 YAML → JSON 或 JSON → YAML 轉換方向。點擊按鈕會自動更改輸入/輸出區域的標籤。
  2. 輸入程式碼 – 在左側輸入區域輸入或貼上要轉換的 YAML 或 JSON。您也可以使用「範例」按鈕載入 DevOps 範例。
  3. 檢查驗證 – 在輸入區域底部檢查語法有效性狀態。如果有錯誤會顯示錯誤訊息。
  4. 檢視結果 – 在右側輸出區域檢視轉換結果。轉換會在您輸入時即時進行。
  5. 複製或下載 – 使用「複製」按鈕複製到剪貼簿,或使用「下載」按鈕儲存為檔案。

YAML 與 JSON 比較

YAML 和 JSON 都是資料序列化格式,但各有其特點、優點和缺點:

  • 可讀性 – YAML 基於縮排,對人類來說更容易閱讀和編寫。JSON 由於大量的大括號和逗號,在複雜資料中可讀性可能降低。
  • 解析速度 – JSON 結構更簡單,解析速度更快。由於錨點和別名等各種功能,YAML 解析更複雜。
  • 註解支援 – YAML 允許使用 # 符號添加註解。JSON 官方不支援註解。
  • 資料類型 – 兩者都支援字串、數字、布林值、陣列和物件。YAML 額外支援日期、時間戳記和其他類型。
  • 使用環境 – YAML 主要用於設定檔(Docker、K8s、Ansible 等)。JSON 廣泛用於 API 通訊和 Web 應用程式資料交換。

DevOps 範例詳情

本工具提供 5 個實務中常用的 DevOps 設定檔範例:

  • Docker Compose – 定義多容器應用程式的 docker-compose.yml 範例。展示包括網頁伺服器和資料庫在內的多個服務的設定。
  • Kubernetes Deployment – 用於管理 Pod 部署的 K8s Deployment 清單。包含副本數量、容器映像和資源限制的設定。
  • Kubernetes Service – 定義 Pod 網路存取的 K8s Service 清單。設定 LoadBalancer 和 ClusterIP 等服務類型。
  • Kubernetes ConfigMap – 用於儲存應用程式設定的 K8s ConfigMap 範例。用於將環境變數或設定檔注入到 Pod 中。
  • GitHub Actions – 定義 CI/CD 工作流程的 GitHub Actions 設定。展示包含建置、測試和部署階段的典型工作流程。

提示

  • 多文件 – 當 YAML 文件用 — 分隔時,每個文件會作為 JSON 陣列的元素進行轉換。
  • 錨點和別名 – YAML 錨點(&)和別名(*)在 JSON 轉換時會被替換為參照的值。
  • 日期格式 – YAML 日期(2024-01-15)在 JSON 中會轉換為字串。如有需要可能需要額外處理。
  • 大檔案 – 可以處理數千行的檔案,但非常大的檔案可能會影響瀏覽器效能。
  • 縮排一致性 – 在 YAML 中混合使用 Tab 鍵和空格會導致錯誤。本工具使用基於空格的縮排。
  • 使用自動儲存 – 即使您意外關閉頁面,自動儲存的內容也會還原。轉換方向也會儲存。

常見問題

YAML 和 JSON 完全相容嗎?

在大多數情況下是的。JSON 是 YAML 的子集,因此所有有效的 JSON 都是有效的 YAML。但是,一些進階 YAML 功能(錨點、別名、自訂標籤等)在 JSON 中沒有直接對應,因此在轉換時值可能會展開或忽略。

YAML 註解會轉換為 JSON 嗎?

不會,JSON 官方不支援註解。YAML 註解(# 後面的文字)在 JSON 轉換時會被刪除。如果註解包含重要資訊,請另外保留。

轉換時資料順序會保留嗎?

是的,本工具會保留鍵的順序。從 YAML 轉換為 JSON 和從 JSON 轉換為 YAML 時,原始鍵的順序會保持不變。但請注意,某些程式語言或工具在處理 JSON 物件時可能會更改順序。

輸入的資料會傳送到伺服器嗎?

不會,所有轉換都在瀏覽器中使用 JavaScript 處理。輸入的 YAML 或 JSON 不會傳送到任何伺服器,讓您可以安全地轉換敏感設定檔(包括 API 金鑰和密碼)。自動儲存功能也只使用瀏覽器的本機儲存空間。

應該使用 2 空格還是 4 空格縮排?

請遵循您團隊或專案的程式碼風格指南。一般來說,Kubernetes 和 Docker 通常使用 2 空格縮排。對於深度巢狀的結構,2 空格看起來更簡潔,而 4 空格對於較簡單的結構可能更易讀。

YAML 解析錯誤應該怎麼辦?

檢查輸入區域底部顯示的錯誤訊息。常見的錯誤原因包括:(1)使用 Tab 鍵 – YAML 只允許空格。(2)縮排不一致 – 同一層級的項目必須有相同的縮排。(3)特殊字元 – 冒號(:)和破折號(-)後面需要空格。(4)缺少引號 – 包含特殊字元的字串需要用引號包裹。

可以用 kubectl 使用 JSON 轉換的 Kubernetes 清單嗎?

是的,kubectl 支援 YAML 和 JSON。您可以使用 kubectl apply -f 套用轉換後的 JSON 檔案,或使用 kubectl create -f 建立資源。JSON 格式在與 API 伺服器進行程式化通訊時也很有用。

聯絡我們