我有两个像这样的json对象:
Object 1:
{
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
},
{
"TITLE":"Functions and Events",
"ID":"2"
},
]
}
Object 2:
{
"job":[
{
"PCATID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"PCATID":"27",
"CC":"EBS",
"JNUM":"01489"
},
]}
他们有共同的ID(ID和PCATID),但它们的名称不同。
如何合并它们以使最终对象看起来像:
对象3:
{
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"TITLE":"SEO",
"ID":"27",
"CC":"EBS",
"JNUM":"01489"
},
]
}
答案 0 :(得分:0)
没有真正简单的方法可以做到这一点。但以下内容将起作用:
var obj1 = {
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
},
{
"TITLE":"Functions and Events",
"ID":"2"
}]
};
var obj2 =
{
"job":[
{
"PCATID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"PCATID":"27",
"CC":"EBS",
"JNUM":"01489"
}
]};
var newObj = {jcat:[]};
newObj.jcat[0] = $.extend(true, {}, obj1.jcat[0], $.map([obj2.job[0]],function(e){
return {CC:e.CC, JNUM:e.JNUM};
})[0]);
newObj.jcat[1] = $.extend(true, {}, obj1.jcat[0], $.map([obj2.job[1]], function(e){
return {CC:e.CC, JNUM:e.JNUM};
})[0]);
JS FIDDLE: http://jsfiddle.net/XmsX4/1/