格式轉換:XML To JSON
使用 xml-js 的 compact 模式將 XML 轉換為 JSON:屬性放在 _attributes 下,文字放在 _text 下,重複的同級元素變為陣列。所有值都保持為字串。
在編寫解析程式碼前,以 JSON 形式檢視 SOAP、RSS 或舊版 XML API 的響應。
適用場景
- 在編寫解析程式碼前,以 JSON 形式檢視 SOAP、RSS 或舊版 XML API 的響應。
- 從 XML 匯出檔案中提取屬性值和文字,交給基於 JSON 的工具。
使用方法
- 將 XML 貼上到左側編輯器,或載入 .xml 檔案。
- 在 JSON 中,從 _attributes 讀取屬性,從 _text 讀取元素文字,從陣列讀取重複元素。
- 複製 JSON,把需要的欄位對映到你自己的結構中。
XML 輸入
<order id="1042"> <customer>Ada Lovelace</customer> <item sku="A-1">Keyboard</item> <item sku="B-7">Mouse</item> </order>
JSON
{
"order": {
"_attributes": {
"id": "1042"
},
"customer": {
"_text": "Ada Lovelace"
},
"item": [
{
"_attributes": {
"sku": "A-1"
},
"_text": "Keyboard"
},
{
"_attributes": {
"sku": "B-7"
},
"_text": "Mouse"
}
]
}
}功能與限制
轉換在瀏覽器中進行。沒有設定項,compact 格式是固定的。
只出現一次的元素是物件,出現兩次就變成陣列,因此 JSON 結構可能隨資料變化。程式碼中需要同時處理兩種情況。
XML 宣告、註釋和 CDATA 會保留為 _declaration、_comment 和 _cdata。不進行 schema(XSD)或 DTD 校驗。
混合內容(文字與標籤交錯)會丟失原有順序。
FAQ
數字和布林值會轉換為 JSON 型別嗎?
不會。屬性值和文字都保持為字串,例如 "1042"。需要時請在自己的程式碼中轉換型別。
XML 格式有誤會怎樣?
頁面會顯示 "Invalid XML" 錯誤而不是 JSON,例如 "unclosed tag <order>" 或 "Unexpected close tag (line 3, column 8)"。請閉合每個元素、給屬性值加引號,並把 & 轉義為 &。
能得到不含 _text 和 _attributes 鍵的 JSON 嗎?
本頁不行。compact 格式保留這些鍵,以免屬性和文字混淆。複製後請在程式碼中調整結構。