Javascript 如何将JSON对象数组转换为有效的XML?
假设我得到了一个JSON对象数组,如下所示:Javascript 如何将JSON对象数组转换为有效的XML?,javascript,node.js,Javascript,Node.js,假设我得到了一个JSON对象数组,如下所示: const cars = [ { "color": "purple", "type": "minivan", "registration": "2020-02-03", "capacity": 7 }, {
const cars = [
{
"color": "purple",
"type": "minivan",
"registration": "2020-02-03",
"capacity": 7
},
{
"color": "orange",
"type": "SUV",
"registration": "2021-05-17",
"capacity": 4
},
{
"color": "green",
"type": "coupe",
"registration": "2019-11-13",
"capacity": 2
}
];
我想将此对象转换为有效的XML。但是我在转换帮助程序包时使用开始标记作为数组索引,因此生成的XML无效
例如:(函数json2xml
from)
函数json2xml(o,tab){
var-toXml=函数(v,name,ind){
var xml=“”;
if(v instanceof数组){
对于(var i=0,n=v.length;i
这假设JSON对象的数组都具有相同的键
let xml = "";
const prefixXML = `<?xml version="1.0" encoding="UTF-8"?>\n<cars>\n`;
const suffixXML = "\n</cars>";
const keys = Object.keys(cars[0]);
cars.forEach((car) => {
let valueXML = keys
.map((key) => {
return `<${key}>${car[key]}</${key}>`;
})
.join("\n\t");
xml += `
<car>
${valueXML}
</car>
`;
});
const final = prefixXML + xml + suffixXML;
console.log(final);
let xml=”“;
常量prefixXML=`\n\n`;
常量SUFFEXXML=“\n”;
const keys=Object.keys(cars[0]);
cars.forEach((car)=>{
让valueXML=keys
.map((键)=>{
返回`${car[key]}`;
})
.join(“\n\t”);
xml+=`
${valueXML}
`;
});
const final=prefixXML+xml+suffxxml;
控制台日志(最终);
XML输出为:
<?xml version="1.0" encoding="UTF-8"?>
<cars>
<car>
<color>purple</color>
<type>minivan</type>
<registration>2020-02-03</registration>
<capacity>7</capacity>
</car>
<car>
<color>orange</color>
<type>SUV</type>
<registration>2021-05-17</registration>
<capacity>4</capacity>
</car>
<car>
<color>green</color>
<type>coupe</type>
<registration>2019-11-13</registration>
<capacity>2</capacity>
</car>
</cars>
紫色
小型货车
2020-02-03
7.
橙色
运动型多用途汽车
2021-05-17
4.
绿色
轿跑车
2019-11-13
2.
哇,太酷了。它成功了,谢谢!