正确地将字符串和数组合并到JSON中

时间:2016-11-09 03:14:04

标签: javascript arrays json xml

我从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
}  

你知道怎么解决吗?

1 个答案:

答案 0 :(得分:1)

您不能在一个父级下拥有多个同名的密钥。此外,xml中的节点有一个顺序,在js映射下丢失。因此,如果您需要xml到json实用程序,则需要自己创建一个json模式。这是一个简单的例子:

{
    name:      "catalog",
    value:     null,
    children: [
        {
            name: "book",
            value: 6
        },
        {
            name: "book",
            value: 6
        },
        {
            name: "book",
            value: 6
        },
    ]
}