跳到主要內容
Tools

JSON ↔ YAML

JSON 與 YAML 雙向轉換,保留鍵名順序,並標出語法錯誤的行號與欄位。

縮排

0 個字元 · 1 行

使用說明

  1. 選擇轉換方向:「JSON → YAML」或「YAML → JSON」。
  2. 在輸入欄貼上內容,或按「範例」看看效果,結果會即時顯示;有語法錯誤時,會標出行號、欄位與原因。
  3. 依需要選擇縮排。轉成 YAML 時可勾選「相容 YAML 1.1」;讀取 YAML 時可選擇以 1.2 或 1.1 的規則解析。
  4. 按「對調」把結果移到輸入欄並切換方向,方便來回檢查。
  5. 按「複製」或「下載」取得結果。

常見問題

我的資料會被上傳嗎?

不會。轉換全程在你的瀏覽器中完成,資料不會離開你的裝置。第一次轉換時會從本站下載 YAML 程式庫,之後就不需要再下載。

YAML 1.1 和 1.2 有什麼差別?為什麼 no 會變成 false?

YAML 1.1 把 yes、no、on、off、y、n 都當成布林值,0755 當成八進位數字,1:30 當成六十進位數字(90)。YAML 1.2 只認 true 與 false,0755 是十進位的 755。許多舊程式(例如 PyYAML、Go 的 yaml.v2)仍採用 1.1 的規則,所以國碼 NO(挪威)可能被讀成 false。勾選「相容 YAML 1.1」時,這類字串都會加上引號,任何版本讀起來都是字串。

輸入有多個 YAML 文件(以 --- 分隔)時怎麼處理?

JSON 只能有一個最上層的值,所以預設把所有文件依序放進一個陣列;也可以選擇只轉換第一個文件。Kubernetes 設定檔常把多個資源寫在同一個檔案,轉成陣列後就能一次處理。

鍵名的順序會改變嗎?很大的數字會失真嗎?

不會。兩個方向都保留原本的鍵名順序(包括 "1"、"2" 這類數字鍵名),超過 JavaScript 安全範圍的整數(例如 12345678901234567890)也會完整保留,1.0 這類寫法同樣不變。

YAML 的註解、錨點與別名會保留嗎?

JSON 沒有註解,所以 YAML 轉 JSON 時註解會被移除;錨點(&)與別名(*)會展開成實際的值,合併鍵(<<)也會套用。若只想整理 YAML 而保留註解,請使用「YAML 格式化」。

JSON 沒有的 YAML 值會怎麼轉換?

.inf、.nan 會變成 null;以 YAML 1.1 解析時,日期會轉成 ISO 8601 字串,!!binary 會轉成 Base64 字串,!!set 會轉成陣列。鍵名不是字串時(例如數字或陣列),會轉成字串或 JSON 文字,並顯示提醒。

鍵盤快捷鍵

/
搜尋工具(在工具頁會回到首頁的搜尋欄)
?
顯示這個說明
Esc
關閉對話框
Ctrl / ⌘Enter
執行工具的主要動作(支援的工具)

在輸入框中打字時,/ 與 ? 不會觸發快捷鍵。