DevToolPal
繁

YAML 與 JSON 互轉

把 YAML 轉成 JSON,或把 JSON 轉成 YAML。支援錨點、多文件,出錯時精確指出位置。

本機處理,不會上傳

選項

方向
縮排

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能介紹

這個工具可以把 YAML 轉成 JSON,也能把 JSON 轉成 YAML。YAML 因為方便人工閱讀和撰寫,在設定檔中很受歡迎(Kubernetes、Docker Compose、GitHub Actions、OpenAPI 規格)。JSON 則是大多數程式、API 和瀏覽器使用的格式。在兩者之間轉換,可以讓你驗證設定、把它交給指令碼處理,或把 API 回應整理成易讀的設定檔。

使用方式

  1. 把 YAML 貼到 輸入 框、拖曳 .yaml 或 .yml 檔案進來,或按 範例。
  2. JSON 會隨著輸入即時顯示在右側。可選擇 2 或 4 個空格縮排。
  3. 把 方向 切換成 JSON → YAML 就能反向轉換。長字串永遠不會被折行,所以值會保持在同一行。
  4. 複製或下載結果。

如果 YAML 無效,錯誤訊息會顯示行號和欄號,點一下游標就會移到該位置。常見的錯誤包括縮排不一致、用 Tab 縮排、冒號後面少了空格,以及同一個對應中有重複的鍵。

範例

name: devtools
ports:
  - 80
  - 443
database:
  host: db.internal

會變成

{
  "name": "devtools",
  "ports": [80, 443],
  "database": { "host": "db.internal" }
}

關於 YAML 你該知道的事

YAML 會從純值推測型別:3 是數字,true 是布林值,null 和 ~ 代表 null,而 1.2.0 因為不是有效的數字,會保持為字串。想讓值保持為文字時,請用引號包住,例如 "01234" 這樣的郵遞區號。錨點(&name)和別名(*name)可以讓你重複使用一個區塊;轉換器會在 JSON 中把它們展開成完整的副本。以 | 撰寫的區塊純量會保留換行,而 > 則會把多行折疊成一個段落。

常見問題

› 我的 YAML 會被傳送到伺服器嗎?

不會。YAML 剖析器在你的瀏覽器中執行,所以 Kubernetes 資訊清單、CI 管線和含有機密資訊的設定檔都不會離開你的裝置。

› 支援哪個 YAML 版本?

YAML 1.2,也就是目前的標準,包括錨點與別名、區塊與流式集合、多行字串和註解。

› 包含多份文件的檔案會怎麼處理?

以 `---` 分隔的文件會轉換成一個 JSON 陣列,每份文件一個元素。結尾 `---` 之後的空文件會被忽略。

› JSON 轉 YAML 時會保留註解嗎?

JSON 沒有註解,所以沒有東西可以保留。YAML 轉 JSON 時,註解會被丟棄,因為 JSON 無法表示註解。