2015-05-05 48 views
-1

如何合併這2個JSON變量?如何使用javascript合併數組和json對象

var j1 = {"a":{"hello":"test"},"b":['array']}; 
var j2 = {"b":{"hi":"world"}}; 

$.extend(true,{},j1,j2) does not work it removes my ['array'] value 

我想這樣

「B」 的結果:{ 「喜」: 「世界」},[ '陣']

謝謝!

+0

你的意思是用' 「B」 是什麼:{ 「喜」: 「世界」},[ '陣']' ?應該是一個對象還是一個數組。 'b:{「hi」:「world」,['array']}'或'b:[{「hi」:「world」},['array']]'? – Martin

+0

你想要的結果是一個在現實世界中不存在的突變物體。你打算怎麼處理它? –

+0

我打算將它存儲在$('body').data()中,然後再訪問它。 – medz

回答

0

此代碼可以幫助你

function merge (obj1, obj2) { 
    var obj = JSON.parse(JSON.stringify(obj1)); // Clone object 
    for(var key in obj) { 
     if(obj2.hasOwnProperty(key)) { 
     obj[key] = [obj[key], obj2[key]]; 
     } 
    } 

    return obj; 
} 

例如:

var j1 = {"a":{"hello":"test"},"b":['array']}; 
var j2 = {"b":{"hi":"world"}}; 
obj = merge(j1, j2); 


/* Result : 

{ 
    "a": { 
     "hello": "test" 
    }, 
    "b": [ 
     [ 
     "array" 
     ], 
     { 
     "hi": "world" 
     } 
    ] 
} 

*/