本代码解决这两个问题:
网站的建设创新互联公司专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都食品包装袋等企业提供专业服务。
1.已知js对象没有类名概念,所以转换时要手动指定顶级节点名称
2.还有数组内的元素如果是对象类型,需要配置此数组元素的节点名称
var XmlHelper=function(){ var _arrayTypes={} var _self=this; /* *转换对象为xml *@obj 目标对象 *@rootname 节点名称 *@arraytypes 配置数组字段子元素的节点名称 */ this.parseToXML=function(obj,rootname,arraytypes){ if(arraytypes){ _arrayTypes=arraytypes; } var xml=""; if(typeof obj!=="undefined"){ if(Array.isArray(obj)){ xml+=parseArrayToXML(obj,rootname); }else if(typeof obj==="object"){ xml+=parseObjectToXML(obj,rootname); }else{ xml+=parseGeneralTypeToXML(obj,rootname); } } return xml; } var parseObjectToXML=function(obj,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname="Object"; } var xml="<"+rootname+">"; if(obj){ for(var field in obj){ var value=obj[field]; if(typeof value!=="undefined"){ if(Array.isArray(value)){ xml+=parseArrayToXML(value,field); }else if(typeof value==="object"){ xml+=_self.parseToXML(value,field); }else{ xml+=parseGeneralTypeToXML(value,field); } } } } xml+=""+rootname+">"; return xml; } var parseArrayToXML=function(array,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname="Array"; } var xml="<"+rootname+">"; if(array){ var itemrootname=_arrayTypes[rootname]; array.forEach(function(item){ xml+=_self.parseToXML(item,itemrootname); }); } xml+=""+rootname+">"; return xml; } var parseGeneralTypeToXML=function(value,rootname){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ rootname=typeof value; } var xml="<"+rootname+">"+value+""+rootname+">"; return xml; } } //===========测试========== var xmlhelper=new XmlHelper(); //示例1 var testobj={ field1:"1", field2:true, field3:[{a:1},{a:2}] } console.log(xmlhelper.parseToXML(testobj,"testobj",{field3:"ArrayItem"})); //输出:console.log("================================================"); //示例2 var testobj2=[1,2,3]; console.log(xmlhelper.parseToXML(testobj2,"testobj2")); //输出: 1 true 1 2 1 2 3
此转换代码有使用限制
对象中值为数组的字段名最好不要一样
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持创新互联!
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款