HOWTO · JavaScript
在 JavaScript 中将 JSON 转换为 XML
本文有助于使用 JavaScript 将 JSON 转换为 XML。
本文有助于使用 JavaScript 将 JSON 转换为 XML。
使用 JavaScript 将 JSON 转换为 XML
要从 Web 服务器接收数据,你可以使用 JSON 或 XML。
下面是 JSON 和 XML 的样子。
JSON:
{
"students": [
{
"firstName": "Jack",
"lastName": "Duk"
},
{
"firstName": "David",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Parker"
}
]
}
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<students>
<firstName>Jack</firstName>
<lastName>Duk</lastName>
</students>
<students>
<firstName>David</firstName>
<lastName>Smith</lastName>
</students>
<students>
<firstName>Peter</firstName>
<lastName>Parker</lastName>
</students>
</root>
让我们从这个用于将 JSON 转换为 XML 的 JavaScript 函数开始。
var InputJSON =
'{College:{entry: [{ Student : \'shiv\', Roll_No: 12},{ Student : \'yadav\',Roll_No: 56}]}}';
var output = eval('OBJtoXML(' + InputJSON + ');')
function OBJtoXML(obj) {
var xml = '';
for (var prop in obj) {
xml += obj[prop] instanceof Array ? '' : '<' + prop + '>';
if (obj[prop] instanceof Array) {
for (var array in obj[prop]) {
xml += '<' + prop + '>';
xml += OBJtoXML(new Object(obj[prop][array]));
xml += '</' + prop + '>';
}
} else if (typeof obj[prop] == 'object') {
xml += OBJtoXML(new Object(obj[prop]));
} else {
xml += obj[prop];
}
xml += obj[prop] instanceof Array ? '' : '</' + prop + '>';
}
var xml = xml.replace(/<\/?[0-9]{1,}>/g, '');
return xml
}
console.log(output);
XML 中的数组很奇怪,因为标记重复会识别它们,而不是明确拼写为 JSON 数组。最好使用 Array 键作为要重复的标签。
输出:
<?xml version="1.0" encoding="UTF-8"?>
<College>
<entry>
<Student>shiv</Student>
<Roll_No>12</Roll_No>
</entry>
<entry>
<Student>yadav</Student>
<Roll_No>56</Roll_No>
</entry>
</College>
你可以在输出中看到标签重复。