2016-09-22 150 views
1

我有五个json对象obj1,obj2,obj3,obj4和obj5,我想合并它们并克里特岛单个json对象和obj具有相同的列。得到的JSON应具有的所有对象
问题的所有值:将多个对象合并到一个对象中,使数组具有相同的属性值

var obj1 = { 
    "DOP":"manu", 
    "Resolution":23, 
    "sensor":"SE" 
} 

var obj2 = { 
    "DOP":"mansa", 
    "Resolution":22, 
    "sensor":"PS" 
} 

像所有五个对象数据和结果应只更新行并不像列和预期的结果应该是

var result = { 
    "Dop":["manu","mansa"], 
    "Resolution":[23,25], 
    "Sensor":["SE","PS"] 
} 
+0

你的结果是不是一个有效的JSON对象 – azad

+0

你可以得到导致这样的'无功的结果= {“DOP”:“马努”,“曼沙”],“解决方案”:23, 25],“传感器”:[“SE”,“PS”]}' – azad

+0

结果是无效的json,让我们知道如果这是你输出之后,或者你需要一个有效的合并json结果? – snit80

回答

1

你可以用for(x in obj)

var result = {} 
for (x in obj1) { result[x] = obj1[x] + ', ' + obj2[x] } 
//Object {DOP: "manu, mansa", Resolution: "23, 22", sensor: "SE, PS"} 
0

你想要结果的方式是非法的。 所有你可以有你的JSON数组。

var result = [{ "DOP":"mansa", "Resolution":22, "sensor":"PS" }, 
 
       { "DOP":"manu", "Resolution":23, "sensor":"SE" } 
 
      ]

+0

我不认为这是OP的解决方案。 –

+0

@HareshVidja这取决于OP如何输出。你不能决定。 – ricky

+0

我还没有决定输出检查问题编辑修订版,http://stackoverflow.com/posts/39630651/revisions –

0

var x ={ "student-marks":{'math':1,'physics':5} }; var y ={ "student-marks":{'chemistry':3,'history':2} }; $.extend(true, {}, x, y);

我从这里的答案:How to merge two object values by keys

0

您可以根据传递无限的对象作为参数myCustomMerge()功能合并对象

function myCustomMerge() { 
 
    var return_obj = {}; 
 
    for (i in arguments) { 
 
     obj = arguments[i]; 
 
     for (j in obj) { 
 
      if (return_obj[j] == undefined) { 
 
       return_obj[j] = [obj[j]]; 
 
      } else { 
 
       return_obj[j].push(obj[j]); 
 
      } 
 
     } 
 
    } 
 
    return return_obj; 
 
} 
 

 

 
var obj1 = { 
 
    "DOP": "manu", 
 
    "Resolution": 23, 
 
    "sensor": "SE" 
 
} 
 

 
var obj2 = { 
 
    "DOP": "mansa", 
 
    "Resolution": 22, 
 
    "sensor": "PS", 
 
    "special_obj2": "My Special Value" 
 
} 
 

 
var obj3 = { 
 
    "DOP": "top", 
 
    "Resolution": 36, 
 
    "sensor": "ME", 
 
    "special_obj2": "My Special Value 2" 
 
} 
 

 
var merged_obj = myCustomMerge(obj1, obj2, obj3); 
 
console.log(merged_obj);

相关问题