2012-11-28 35 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