2012-11-28 39 views
0

我寫這應該連接兩個字符串(即是JSON字符串化的結果)合併爲一個字符串的方法(這看起來應該像JSON對象與它的結構)。拼接的javascript「串」成對象

第一招:

{"text":"klk","makeId":"9"} 

第二個:

{"firstname":"jjk","lastname":"jkjk","email":"[email protected]"} 

如何串連這兩成一個JSON字符串即:

{"text":"klk","makeId":"9", "firstname":"jjk","lastname":"jkjk","email":"[email protected]"} 

我可以剝奪{""}然後用逗號分隔並實現這個結果。我想知道是否有更好的更聰明的方法來做到這一點?

+2

不要使用字符串連接。解析JSON,合併對象的內容並序列化結果。 –

+0

@ hall.stephenk沒有問題,它只是醜陋的代碼 –

回答

6

這些字符串是JSON!解析它們,將它們合併爲對象並再次將它們串起來。


var data1 = JSON.parse(json1); 
var data2 = JSON.parse(json2); 
var data = merge(data1, data2); // implement merge! 
console.log(JSON.stringify(data)); 

JSON應該是在最近所有瀏覽器。

function merge(obj1, obj2) { 
    var hasOwn = {}.hasOwnProperty; 
    for (var key in obj2) { 
     if (hasOwn.call(obj2, key)) { 
      obj1[key] = obj2[key]; 
     } 
    } 
    return obj1; 
} 
+0

你能指點我一個例子嗎? –

+2

我同意,但我不能給你+1,因爲如果OP不是JavaScript專家,「實現合併」是一個非常大的步驟。 – SAJ14SAJ

+1

@ SAJ14SAJ不是。我絕不是JavaScript專家(我的意思是,我寫了Hello World,基本上就是這樣),我可以在不到5分鐘的時間內做到這一點。 – Cubic