我从XML文档中获取了一些数据并将它们分配到三个变量中。根元素名称,包含根子节点的所有名称的数组,以及具有这些子子节点长度的第二个数组。我想以这种方式将这些变量转换为JSON对象:
{ "root_name": {
"childName[0]": "lengthSubNodes[0]",
"childName[1]": "lengthSubNodes[1]",
"childName[2]": "lengthSubNodes[2]",
}
使用此功能:
function XMLtoJSON(rootName,childNames,childNumbers){
var xmlObject = {}
xmlObject[rootName] = {};
for(var i = 0; i < childNames.length; i++ ){
xmlObject[rootName][childNames[i]] = childNumbers[i];
}
}
一切正常。但是,当涉及到具有相同名称和长度的许多root用户的XML文档时,它们只出现一次:
{ "catalog": {
"book": 6
}
应该是这样的:
{ "catalog": {
"book":6,
"book":6,
"book":6
}
你知道怎么解决吗?
答案 0 :(得分:1)
您不能在一个父级下拥有多个同名的密钥。此外,xml中的节点有一个顺序,在js映射下丢失。因此,如果您需要xml到json实用程序,则需要自己创建一个json模式。这是一个简单的例子:
{
name: "catalog",
value: null,
children: [
{
name: "book",
value: 6
},
{
name: "book",
value: 6
},
{
name: "book",
value: 6
},
]
}