tigtools

YAML 轉 JSON 轉換器

貼上 YAML(Kubernetes manifest、CI 檔案、OpenAPI 規格或設定檔),立即取得格式化 JSON。不會上傳任何內容。

在瀏覽器中執行 免註冊

縮排

改為將 JSON 轉換為 YAML

使用方式

  1. 將 YAML 貼到輸入區,或試試範例。
  2. 選擇 2 或 4 個空格縮排。
  3. 複製 JSON,或下載為 .json 檔案。

運作方式

YAML 會以開放原始碼 yaml 程式庫解析,採用 YAML 1.2 core schema,這是現代工具預期的行為:yes、no、on 和 off 維持字串,只有 true 和 false 是布林值。錨點 (&name) 與別名 (*name) 會展開,並套用 << 合併鍵;別名展開的次數有限制,因此刻意使文件爆炸性展開的內容會被拒絕,而不是讓頁面凍結。

以 --- 分隔多份文件的檔案會變成 JSON 陣列,每個文件一個元素。註解、錨點和標籤沒有 JSON 對應項目,會被捨棄;鍵會保留順序。時間戳記維持字串。超過約 15 位數的整數會失去精確度,如同在 JavaScript 中處理任何 JSON 一樣。

如果 YAML 無效,會顯示第一個錯誤及其行與欄,例如以 Tab 縮排或缺少結束括號。若要反向轉換,請使用 JSON 轉 YAML,或雙向 JSON ⇄ YAML 轉換器。

範例

含錨點的 CI 檔案

一份重複使用 defaults 區塊並以 <<: *defaults 合併的工作清單會轉成 JSON,defaults 會複製到每個 job,讓您清楚看到每個 job 實際取得的內容。

多文件 Kubernetes 檔案

包含 Deployment 和 Service 並以 --- 分隔的檔案會變成兩個物件的 JSON 陣列,可直接用於 kubectl 或 jq。

常見問題

為什麼 yes 會維持字串?

這裡及大多數現行工具使用的 YAML 1.2 只將 true 和 false 視為布林值。較舊的 YAML 1.1 解析器會把 yes、no、on 和 off 轉成布林值,因而造成許多錯誤。

註解會如何處理?

JSON 沒有註解,所以註解會被捨棄。資料本身不會改變。

有大小限制嗎?

只受限於瀏覽器的記憶體。大型檔案會在您輸入時短暫停頓後進行轉換,因此頁面能保持回應。

隱私權

轉換完全在您的瀏覽器中執行。您的 YAML 和 JSON 不會被上傳或儲存。