JSON和XML都是目前廣泛使用的數據交換格式。在許多應用程序中,我們需要將XML轉換為JSON。本文將介紹如何使用JavaScript解析XML并將其轉換為JSON。
// 假設我們有以下這個XML字符串 var xmlString = "<bookstore><book><title>Harry Potter</title><author>J.K. Rowling</author><year>2005</year></book><book><title>Lord of the Rings</title><author>J.R.R. Tolkien</author><year>1954</year></book></bookstore>"; // 創建DOM解析器解析XML var parser = new DOMParser(); var xml = parser.parseFromString(xmlString, "text/xml"); // 定義轉換函數,將XML節點轉換為JSON對象 function xmlToJson(xml) { var obj = {}; if (xml.nodeType == 1) { // element if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var i = 0; i < xml.attributes.length; i++) { var attribute = xml.attributes.item(i); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { // text obj = xml.nodeValue.trim(); } if (xml.hasChildNodes()) { for (var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (nodeName == "#text") { continue; } if (typeof(obj[nodeName]) == "undefined") { obj[nodeName] = xmlToJson(item); } else { if (typeof(obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xmlToJson(item)); } } } return obj; } // 解析XML并將其轉換為JSON var json = xmlToJson(xml); // 輸出JSON console.log(json);
使用以上代碼,我們可以將XML字符串轉換為相應的JSON對象。我們可以在JavaScript應用程序中對JSON對象進行操作和訪問。
下一篇php uc