跳至主要內容
SPCXTools

YAML 轉 JSON 轉換器

在 YAML 和 JSON 之間雙向轉換設定檔,內建語法檢查功能。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 YAML 轉 JSON 轉換器

  1. 1選擇轉換方向 — YAML → JSON 或 JSON → YAML。
  2. 2將您的 YAML 或 JSON 貼到左側輸入框,或點擊 範例。
  3. 3輸入時,轉換結果會即時顯示在右側。若有語法錯誤,會在下方顯示詳細說明。
  4. 4複製結果,或下載為 .json 或 .yaml 檔案。切換轉換方向時,目前的結果會自動移至輸入框。

YAML 與 JSON 雙向轉換

YAML 和 JSON 是最常見的兩種設定檔與結構化資料格式。Kubernetes manifest、Docker Compose 檔案、CI 流程和 OpenAPI 規格通常以 YAML 撰寫,而 API、JavaScript 程式碼與許多工具則多使用 JSON。這款轉換工具支援雙向即時轉換,並會在輸入內容無效時,明確提示錯誤原因。

功能特色

  • 雙向轉換:支援 YAML → JSON 及 JSON → YAML,一鍵即可切換。
  • 語法驗證:針對縮排錯誤、引號未閉合及無效的 JSON 提供清晰的錯誤訊息。
  • 多文件 YAML:支援將多個 YAML 文件轉換為 JSON 陣列。
  • 自動解析:自動處理 YAML 的錨點 (anchors)、別名 (aliases) 與合併鍵 (merge keys)。
  • 自訂縮排:輸出結果可選擇 2 個或 4 個空格縮排。
  • 複製或下載:可將結果複製或下載為 .json 或 .yaml 檔案。
  • 注重隱私:所有處理皆在本地端完成,資料不會傳送至伺服器。

範例

以下 YAML:

name: web-app
replicas: 3
ports:
  - 80
  - 443
env:
  NODE_ENV: production

可轉換為以下 JSON:

{
  "name": "web-app",
  "replicas": 3,
  "ports": [80, 443],
  "env": {
    "NODE_ENV": "production"
  }
}

常見的 YAML 錯誤

  • 使用 Tab 縮排。 YAML 僅允許使用空格。請將 Tab 替換為兩個空格。
  • 縮排不一致。 屬於同一層級的項目,其縮排的空格數必須完全相同。
  • 冒號後缺少空格。 key:value 會被視為單一字串;請寫成 key: value。
  • 字串包含特殊字元。 若值以 @、*、&、!、%、{ 或 [ 開頭,或包含 : ,則必須加上引號。
  • 非預期的型別。 像是 1.10 的版本號會變成數字 1.1,且開頭的零可能會消失。若值必須保持為純文字,請加上引號。

相關工具

使用 JSON 格式化工具來排版美化或壓縮產生的 JSON,透過 JSON 轉 CSV 將 JSON 轉換為試算表,或是用 差異比對工具來比較兩個設定檔。

常見問題

YAML 和 JSON 有什麼差別?
兩者都用來描述相同類型的資料 — 物件、列表、字串、數字、布林值和 null。JSON 使用大括號、中括號與引號,是 API 的標準格式。YAML 則以縮排取代括號,支援註解,常被用於 Docker Compose、Kubernetes、GitHub Actions 與 Ansible 等設定檔。
YAML 的註解會如何處理?
JSON 不支援註解,因此在將 YAML 轉換為 JSON 時,註解會被移除。若再轉換回 YAML,也不會保留原始的註解。
如何處理多個 YAML 文件?
一個 YAML 檔案可以包含由 --- 分隔的多個文件。遇到這種情況時,轉換器會輸出一個 JSON 陣列,每個文件轉換為陣列中的一個元素。
是否支援錨點與別名?
是的。錨點 (&name)、別名 (*name) 與合併鍵 (<<: *name) 都會被解析,因此轉換後的 JSON 會包含完整展開的值。
為什麼我的值型別改變了,例如 "no" 變成 false?
本工具遵循 YAML 1.2 規範,只有 true 和 false 會被視為布林值。較舊的 YAML 1.1 解析器會將 yes、no、on 和 off 也當作布林值。如果您需要讓值保持為字串,請加上引號。
我的資料會被上傳嗎?
不會。所有的解析與轉換都在您的瀏覽器中進行,因此包含機密資訊或內部主機名稱的設定檔絕對不會離開您的裝置。