Egret是一個非常強大的跨平臺游戲引擎,支持HTML5、iOS、Android等多個平臺。其中,XML和JSON都是常用的數據序列化格式。在Egret中,經常需要將XML轉換為JSON以方便數據的處理和傳遞。以下就是Egret中XML轉JSON的代碼示例:
// 定義XML字符串 var xmlStr = "<root><name>egret</name><age>5</age></root>"; // 將XML字符串轉換為XML對象 var parser = new DOMParser(); var xmlObj = parser.parseFromString(xmlStr, "text/xml"); // 將XML對象轉換為JSON對象 var jsonObj = {}; if (xmlObj.nodeType === 1) { // element if (xmlObj.attributes.length >0) { jsonObj["attributes"] = {}; for (var j = 0; j< xmlObj.attributes.length; j++) { var attribute = xmlObj.attributes.item(j); jsonObj["attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xmlObj.nodeType === 3) { // text jsonObj = xmlObj.nodeValue; } if (xmlObj.hasChildNodes()) { for(var i = 0; i< xmlObj.childNodes.length; i++) { var item = xmlObj.childNodes.item(i); var nodeName = item.nodeName; if (typeof(jsonObj[nodeName]) == "undefined") { jsonObj[nodeName] = xmlToJson(item); } else { if (typeof(jsonObj[nodeName].push) == "undefined") { var old = jsonObj[nodeName]; jsonObj[nodeName] = []; jsonObj[nodeName].push(old); } jsonObj[nodeName].push(xmlToJson(item)); } } } console.log(jsonObj);
上述代碼中,變量xmlStr表示需要轉換的XML字符串。首先,使用DOMParser對象將XML字符串轉換為XML對象。然后,通過遞歸方式將XML對象轉換為JSON對象。最終,輸出轉換后的JSON對象。這樣,就實現了Egret中XML轉換為JSON的功能。