開發工具

JSON / YAML / XML 格式轉換器

在瀏覽器中互轉 JSON、YAML 與支援範圍內的 XML。可選擇縮排或壓縮輸出、交換格式並複製結果;使用前請確認 XML 對應規則。

輸入
輸出
YAML → JSON

0 / 200,000 UTF-16 編碼單元

輸出 (JSON)
輸入資料後即可顯示轉換結果。
XML 轉換規則

• XML 屬性會成為 JSON/YAML 中以 @ 開頭的鍵,例如 @id。反向轉換時,屬性值必須是字串、數值或布林值。

• 與子元素混合的文字存放在 #text;多個同名子元素會成為陣列。

• XML 文字與屬性會成為字串,不會恢復原本的數值或布林型別。

• 空陣列、空物件與 null 會成為空元素;單一元素陣列無法與單一值區分。不支援巢狀陣列。

• 若頂層只有一個一般鍵且值不是陣列,該鍵會成為根元素名稱。值為陣列的鍵、多個鍵,以及只有 @屬性或 #text 的物件會以 root 包住;根陣列使用 root/item。

• 註解、子元素間僅供排版的空白、混合內容順序及不同子元素名稱之間的原始順序會遺失。字元參照或 CDATA 明示的空白,以及葉節點文字前後的空白會保留。

• 不支援 DOCTYPE、ENTITY 宣告、處理指令、命名空間前綴(名稱中的冒號)、不合法的 XML 名稱,以及 XML 1.0 無法表示的字元。XML 預設命名空間 xmlns 不可使用保留的命名空間 URI。

關於JSON / YAML / XML 格式轉換器

互轉 JSON、YAML 與 XML 資料

選擇輸入與輸出格式,即可進行六種方向的轉換。JSON 常用於 API,YAML 常用於設定檔,XML 則用於結構化文件。本工具只轉換支援的資料結構,不會驗證 API 契約、應用程式設定或 XML 結構描述。

轉換在瀏覽器內執行,不會透過轉換功能上傳、儲存或重複利用輸入資料。頁面資源、流量分析與廣告仍可能使用網路連線。

支援的資料與上限

採用支援 YAML 1.2 的 eemeli/yaml,以及有限範圍的 XML 1.0 剖析器。可選擇壓縮、兩格或四格縮排。交換輸入與輸出時,會把成功的結果作為新輸入;資料不合法時,切換格式仍會保留原有草稿。

輸入與輸出各限 200,000 個 UTF-16 編碼單元,巢狀深度 64 層,資料最多 50,000 個值。部分字元(例如許多表情符號)會占兩個編碼單元。不接受循環別名、不支援的 YAML 標籤、非字串的 YAML 鍵或重複的 JSON 鍵。別名展開也受剖析器的限制。

轉換後十進位值或正負號會改變的數值、非有限數值,以及超出 JavaScript 安全整數範圍的整數會被拒絕。本工具不是任意精度轉換器。識別碼等需要保留精確寫法的資料,請使用加上引號的字串。

XML 與 JSON/YAML 的對應規則

XML 屬性會成為 @id 等鍵,混合文字存放在 #text,多個同名子元素成為陣列。XML 文字與屬性一律成為字串,無法恢復原本的數值或布林型別。反向轉換的屬性值必須是字串、數值或布林值。

空陣列、空物件與 null 會成為空元素,單一元素陣列無法與單一值區分。不支援巢狀陣列。頂層只有一個一般鍵且值不是陣列時,該鍵成為根元素名稱;值為陣列的鍵、多個鍵,以及只有 @屬性或 #text 的物件會以 root 包住。根陣列使用 root/item。

註解、子元素間僅供排版的空白、混合內容順序,以及不同子元素名稱之間的原始順序會遺失。字元參照或 CDATA 明示的空白、葉節點文字前後的空白會保留。混合文字內不會加入縮排空白。

不支援 DOCTYPE、ENTITY 宣告、處理指令、命名空間前綴,以及不符合支援範圍的 XML 名稱或字元。XML 預設命名空間 xmlns 不可使用保留的命名空間 URI。因此,使用命名空間前綴的 SOAP 文件不在本工具的處理範圍內。使用轉換資料前,請先檢查結果。

常見問題

Q. 轉換後會保留註解嗎?
YAML 轉為 JSON 或 XML 時會移除註解;XML 轉為 JSON 或 YAML 時也會移除 XML 註解。
Q. XML 屬性會如何表示?
屬性會成為以 @ 開頭的鍵。例如 <user id="1"/> 轉為 {"user":{"@id":"1"}}。反向轉換採相同規則,屬性值限字串、數值或布林值。
Q. 可以使用 YAML 錨點與別名嗎?
可以,但不能有循環參照,且必須符合剖析器展開量與資料上限。Map、Set、binary、未知標籤等特殊值不受支援。
Q. 可以轉換大型檔案嗎?
輸入與輸出各限 200,000 個 UTF-16 編碼單元,巢狀深度 64 層,最多 50,000 個值。超過上限會顯示錯誤,不會提供部分結果。
Q. 透過 XML 轉換能完整保留資料嗎?
不能。此對應規則不保留原本的數值或布林型別、空集合的差異、單一元素陣列與混合內容順序。請參閱畫面內的 XML 轉換規則。
Q. 複製操作一直沒有完成怎麼辦?
十秒後會警告複製仍未確認完成。等待中的原生請求無法取消,之後仍可能覆寫剪貼簿。在請求結束前,請避免其他複製操作。若顯示複製失敗,再選取結果並手動複製。

資料來源與規格

相關工具

有問題或建議嗎? 聯絡 NanToo

為這項工具評分
—(0 則評分)