開發工具

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 則評分)