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>
你可以在輸出中看到標籤重複。