2016-09-22 151 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);

相關問題