JS实现 xml 转换 JSON 格式
一、转换方法如下:
function xmlToJson(xml) { const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xml, 'application/xml'); const json = parseElement(xmlDoc.documentElement); return JSON.stringify(json, null, 2); } function parseElement(element) { let obj = {}; if (element.nodeType === 1) { // Element if (element.attributes.length > 0) { obj['@attributes'] = {}; for (let j = 0; j < element.attributes.length; j++) { let attribute = element.attributes.item(j); obj['@attributes'][attribute.nodeName] = attribute.nodeValue; } } } else if (element.nodeType === 3) { // Text obj = element.nodeValue; } if (element.hasChildNodes()) { for (let i = 0; i < element.childNodes.length; i++) { let item = element.childNodes.item(i); let nodeName = item.nodeName; if (typeof(obj[nodeName]) === 'undefined') { obj[nodeName] = parseElement(item); } else { if (typeof(obj[nodeName].push) === 'undefined') { let old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(parseElement(item)); } } } return obj; }
二、使用fetch请求测试如下:
fetch('/test.xml').then(res => res.text() ) .then(data => { let jsonData = JSON.parse(xmlToJson(data))['dataList']['data'] // console.log("before result ==>", jsonData) let result = jsonData.map((element, i) => { let obj = {} Object.keys(element).forEach( key => { obj[key] = element[key]["#text"] }) return obj }); console.log("result ===>", result) }) },
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?