使用方式
- 將 YAML 貼到輸入區,或試試範例。
- 選擇 2 或 4 個空格縮排。
- 複製 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 不會被上傳或儲存。