開發者工具
JSON ↔ YAML 轉換器
在本機將 JSON 轉換為 YAML 或將 YAML 轉換為 JSON,支援巢狀陣列、字串和精確數字。
計算結果
依預期資料類型轉換 JSON 與 YAML
在嚴格 JSON 和 YAML 1.2 核心語法之間轉換 JSON 相容資料。轉換器保留包含大整數的 JSON 數字詞元,而非先經 JavaScript 數值轉換四捨五入。轉換的是資料值,不是來源文件的格式或應用程式的設定結構描述。YAML 註解、錨點和呈現方式不會在轉換為 JSON 後保留。
操作步驟
- 貼上文字,或開啟本機 UTF-8 JSON、YAML、YML 或 TXT 檔案。明確選擇 JSON → YAML 或 YAML → JSON;開啟檔案不會偵測轉換方向。
- 選擇兩個或四個空格,可視需要排序物件鍵。處理輸入,解決語法或不支援功能的錯誤。排序遞迴進行,採用區分大小寫的字典順序;陣列順序不變。
- 檢查字串、布林值、null 和數字,再複製、列印或下載 converted.yaml 或 converted.json。修改輸入或選項會清除舊輸出,因此請重新處理。請以實際使用該檔案的應用程式驗證轉換結果。
設定與限制
- 類型與文件規則
- 使用一個 YAML 1.2 文件,包含唯一的字串鍵和 JSON 相容值。"00123" 這類看似數字的識別碼應加引號;不帶引號的 YAML 00123 會變成數字 123。一般的 yes、on 和 ISO 日期文字在核心規則下保持字串。
- 別名與不支援的功能
- 無循環的別名展開為重複的值。循環、重複鍵、非字串鍵、不支援的標籤和非有限數會被拒絕。YAML 合併鍵不生效:<<: *base 變成一般的 "<<" 屬性,因此請先展開需要繼承的欄位。
- 大小與複雜度
- 輸入上限為 2 MiB UTF-8 文字,即 2,097,152 位元組。輸出上限為 8 MiB。超過 128 層巢狀結構、200,000 個值節點或 100 次別名存取時也會停止;小檔案同樣可能超出這些限制。
操作範例
下載 types-example.json,選擇 JSON → YAML,使用兩個空格縮排並關閉排序。轉換後與 types-example.yaml 比較。加引號的 id 和 word 保持字串,enabled 保持 false,retries 和 large 保持數字。
範例輸入
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}預期結果
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993現在開啟 types-example.yaml,明確切換為 YAML → JSON,再次處理。id 仍應是 "00123",大整數仍應是 9007199254740993。去掉 YAML 中 00123 兩側的引號並重試:值會變為數字 123。即使兩個檔案都有效,這種差別對識別碼仍然重要。
常見問題與疑難排解
為什麼其他地方可以格式化的重複鍵 JSON 在這裡失敗?
JSON 格式化工具可以保留重複鍵並給出警告。本轉換器拒絕重複鍵,因為轉換為對應表可能改變其含義。請決定來源資料中應保留的值,並在轉換前刪除重複項。
註解和 YAML 繼承會保留嗎?
JSON 沒有註解或錨點。別名會展開,合併鍵則依字面匯出,而非套用繼承。展開預期資料並檢查結果;轉換並非忠實重寫所有 YAML 功能。
大數在目的應用程式中安全嗎?
轉換器保留支援的數值寫法和大整數值,但後續程式可能以較低精度解析。如果看似數字的值是識別碼,請使用加引號的字串,並測試目的應用程式的剖析器。