跳到正文
馬克工具箱

JSON 轉 YAML

把 JSON 轉換成簡潔的 YAML,用於 Kubernetes 清單、Docker Compose、CI 流水線和應用配置。保留原有鍵順序,只在 YAML 需要時才給字串加引號,JSON 有誤時會提示出錯的行號。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

JSON → YAML
輸出 (YAML)

使用步驟

  1. 在左側貼上 JSON,或點選「載入示例」。
  2. 選擇 2 或 4 個空格縮排,YAML 會即時生成。
  3. JSON 格式有誤時,會提示出錯所在的行。
  4. 複製或下載 YAML;點選「反向轉換」可以把 YAML 轉回 JSON。

引數說明

縮排
Kubernetes、Compose、GitHub Actions 約定使用 2 個空格,也有團隊使用 4 個。
引號
只在必要時加引號,比如包含「: 」、以特殊字元開頭,或者不加引號會被當成數字、布林值、null 的字串(如 "yes"、"on"、"1.0")。
長字串
不自動折行,網址、證書等長值保持在一行,方便 diff。

示例

JSON:

{"apiVersion":"v1","kind":"Service","metadata":{"name":"web"},"spec":{"ports":[{"port":80,"targetPort":8080}]}}

YAML:

apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  ports:
    - port: 80
      targetPort: 8080

常見問題

YAML 是 JSON 的超集嗎?

從 YAML 1.2 開始,幾乎所有 JSON 文件本身就是合法的 YAML。轉換成塊狀 YAML 後結構更易讀、易改,還能寫註釋,而 JSON 不支援註釋。

為什麼輸出裡有些字串帶了引號?

不加引號 YAML 會改變它們的含義:on、yes、no 在 YAML 1.1 解析器裡是布林值,1e3 是數字,包含「: 」的值會被當成新的鍵值對。加引號能保證它仍然是字串。

會保留鍵的順序嗎?

會,輸出中鍵的順序與輸入的 JSON 完全一致。

資料會上傳嗎?

不會。解析和轉換都在瀏覽器中完成,包含主機名、令牌、帳號密碼的配置也不會外洩。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具