组合对象

时间:2013-12-09 01:02:01

标签: javascript json node.js restify

我有两个对象,例如:

{ Count: 1,
  Items:
   [ { foo: [Object],
       name: [Object],
       bar: [Object],
       baz: [Object],
       qux: [Object] } ] }

{ Count: 0, Items: [] }

我需要组合它们并返回一个JSON对象。但是,当我尝试这个时,我得到了

"[object Object][object Object]"

代码:

function returnResponse(obj1, obj2) {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain; charset=UTF-8');
            var returnResult = obj1 + obj2
            res.send(JSON.stringify(returnResult, undefined, 2));
            res.end();
        }

如何让所有对象在浏览器中正确显示?

3 个答案:

答案 0 :(得分:2)

我认为您希望将这两个对象作为数组返回:

function returnResponse(obj1, obj2) {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain; charset=UTF-8');
    var returnResult = [obj1,obj2];
    res.send(JSON.stringify(returnResult, undefined, 2));
    res.end();
}

答案 1 :(得分:1)

如果不使用像jQuery这样的JS框架,则需要一个递归合并函数。例如,查看this one

答案 2 :(得分:0)

您可以使用jQuery库的$ .extend方法。

了解更多: http://api.jquery.com/jQuery.extend/

没有jQuery,单行:

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

另外,这是重复的: How can I merge properties of two JavaScript objects dynamically?