如何将json结构更改为另一个json结构
问题描述:
我想更改我的json结构,我该怎么做?如何将json结构更改为另一个json结构
即时得到一个json,看起来像这样:
body: {
"111111": {
"name": "exp1",
"status": 10000
},
"222222": {
"name": "exp2",
"status": 20000
},
"333333": {
"name": "exp3",
"status": 30000
}
}
,但我需要它在这个结构中:
body: {
bulks: [{
"id": "111111",
"name": "exp1",
"status": 100000
}, {
"id": "222222",
"name": "exp2",
"status": 200000
}, {
"id": "333333",
"name": "exp3",
"status": 300000
}]
}
因为在我的HTML我想这样来阅读:
<div *ngIf="showingList">
<div class="list-bg" *ngFor="#bulk of listBulks | async">
ID: {{bulk.id}} name of item: {{bulk.name}}
</div>
</div>
答
您可以用做减少:
var body = {
"111111": {
"name": "exp1",
"status": 10000
},
"222222": {
"name": "exp2",
"status": 20000
},
"333333": {
"name": "exp3",
"status": 30000
}
}
var bodyArray = Object.keys(body).reduce(function(result, key) {
var item = body[key];
item.id = key;
result.push(item)
return result;
}, []);
+0
它是一个很好的答案。只是一个指针,'array.reduce'具有兼容性问题。请提一下 – Rajesh
答
这是我的解决方案。
var req = {
"111111": {
"name": "exp1",
"status": 10000
},
"222222": {
"name": "exp2",
"status": 20000
},
"333333": {
"name": "exp3",
"status": 30000
}
}
var res = {
\t bulks: []
};
for (var key in req) {
if (req.hasOwnProperty(key)) {
var temp = req[key];
temp["id"] = key;
res.bulks.push(temp);
}
}
console.log(res);
你尝试过什么?转换是一个简单的换行,你确定你有正确的数据? 'var listBulks = {body:{bulks:[oldBodyList]}};' – Sukima
@Sukima我在哪里添加这个转换你建议?我没有尝试过任何东西,但我不知道该怎么尝试...... –
哪里有把你的JavaScript。不Angular有JavaScript吗?这是我能做的最好的事情。也许其他使用Angular的人知道更多。 – Sukima