将json结构转换为可用的javascript数据集

时间:2016-04-19 17:45:20

标签: javascript json

我对json格式有一点点问题,我有一个像这样的json

{
"h": [
        "username",
        "class",
        "height"
    ],
"d": [
        [
            "aji",
            "a",
            9.9
        ],
        [   
            "mail",
            "a",
            2.2
        ],
        [   
            "dono",
            "b",
            2.4
        ],
        [   
            "parti",
            "c",
            1.2
        ]
    ]
}

我想要的是我想用javascript转换我的json是这样的吗?我是否必须首先将我的json转换为数组,或者只是使用我的数组进行一些循环?

[
{
    "username":"aji",
    "class":"a",
    "height": 9.9
},
{
    "username":"mail",
    "class":"a",
    "height":2.2
},
{
    "username":"dono",
    "class":"b",
    "height":2.4
},
{
    "username":"parti",
    "class":"c",
    "height":1.2
}
]

2 个答案:

答案 0 :(得分:0)

试试这个DEMO

var newData = [];
for (prop in data.d) {
  newData.push({
    [data.h[0]]: data.d[prop][0],
    [data.h[1]]: data.d[prop][1],
    [data.h[2]]: data.d[prop][2]
  })
}

console.log(newData);

答案 1 :(得分:0)

只是另一个有两次迭代的解决方案。



var data = { "h": ["username", "class", "height"], "d": [["aji", "a", 9.9], ["mail", "a", 2.2], ["dono", "b", 2.4], ["parti", "c", 1.2]] },
    array = data.d.map(function (a) {
        var o = {};
        a.forEach(function (b, i) {
            o[data.h[i]] = b;
        });
        return o;
    });

document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');
&#13;
&#13;
&#13;