我对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
}
]
答案 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;