在JSON数组中组合嵌套对象 [英] Combining Nested Objects in a JSON Array
本文介绍了在JSON数组中组合嵌套对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有嵌套对象的JSON数组,如下所示:
I have a JSON array with nested objects, as below:
var cData = [{
"name": "Jack Doe",
"desc": "Jack",
"values": [{
"id": "615",
"subject": "Physics",
"Grade": "B"
}, {
"id": "616",
"subject": "Chemistry",
"Grade": "A"
}]
},
{
"name": "Jane Doe",
"desc": "Jane",
"values": [{
"id": "715",
"subject": "Maths",
"Grade": "A+"
}]
},
{
"name": "Jack Doe",
"desc": "Jack",
"values": [{
"id": "617",
"subject": "Maths",
"Grade": "A"
}]
},
{
"name": "Jane Doe",
"desc": "Jane",
"values": [{
"id": "716",
"subject": "Physics",
"Grade": "B"
}]
}]
我想将上述数组中的对象合并为
I want to consolidate objects in above array to
var cData = [{
"name": "Jack Doe",
"desc": "Jack",
"values": [{
"id": "615",
"subject": "Physics",
"Grade": "B"
}, {
"id": "616",
"subject": "Chemistry",
"Grade": "A"
}, {
"id": "617",
"subject": "Maths",
"Grade": "A"
}]
},
{
"name": "Jane Doe",
"desc": "Jane",
"values": [{
"id": "715",
"subject": "Maths",
"Grade": "A+"
}, {
"id": "716",
"subject": "Physics",
"Grade": "B"
}]
}]
如果有人对我有任何建议,那就太好了!也欢迎使用jQuery方法.
If any one has any suggestions for me it'd be really great! jQuery methods are also welcome.
推荐答案
您必须编写函数以合并键下的对象数组,然后获取映射值. 在这里:
You have to write function to merge array of objects under key and then get map values. Here it is:
合并功能:
function mergeArray(array) {
var merged = {};
$.each(array, function() {
var item = this;
// Use name as a key
if (typeof merged[item.name] != 'undefined') {
// merge values array
$.merge(merged[item.name].values, item.values);
}
else {
merged[item.name] = item;
}
});
// get values from { key1: value1, key2: value2, ... } object
return getObjectValues(merged);
}
从对象获取值:
function getObjectValues(obj) {
var values = [];
$.each(obj, function(key,valueObj){
values.push(valueObj);
});
return values;
}
这是工作示例.
这篇关于在JSON数组中组合嵌套对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文