如何合并两个json对象来获取一个json对象?

时间:2016-04-05 08:34:40

标签: javascript jquery angularjs json

我正在尝试合并/组合两个json对象以获取一个最终的json对象(合并对象)。我已经尝试了fiddle,但是如果我使用$。{1}},如果我使用cancat,则使用$ .extend和[object Object]错误。请帮助我如何使用javascript或jquery或angularJS获取我所需的json对象?

4 个答案:

答案 0 :(得分:1)

您可能希望将JSON转换为javascript对象,然后像这样执行合并并转换回JSON。

  

How can I merge properties of two JavaScript objects dynamically?

基本上迭代键并分配它们。

var obj1 = JSON.parse(testjson1),
    obj2 = JSON.parse(testjson2)

for (var attrname in obj2) { obj1[attrname] = obj2[attrname] }

var finaljsonresult = JSON.stringify(obj1)

但这只是一个潜行高峰期,您可能希望查看链接的答案以获取更多信息。

答案 1 :(得分:1)

由于此问题标有 AngularJS ,为什么不使用angular.fromJson将JSON转换为JavaScript对象,然后将它们与angular.merge合并?

angular.extend不同,angular.merge以递归方式下降到源对象的对象属性中,执行深层复制

答案 2 :(得分:0)

var obj1 = {
        'a': 'aa',
        'b': 'bb',
        'c': 'cc'
    },
    obj2 = {
        'a': 'aa',
        'd': 'dd',
        'e': 'ee'
    };

for (var key in obj2) {
    obj1[key] = obj2[key]
}

var res = JSON.stringify(obj1);
alert(res);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 3 :(得分:-2)

The Extend keyword in jquery making stringify:
  var object1 = { 
                 apple: 0, 
                banana: { weight: 52, price: 100 }, 
                cherry: 97 
                };
        var object2 = {
                         banana: { price: 200 },
                         durian: 100};
        var ss = $.extend(object1, object2);
        alert(JSON.stringify(ss));