我有两个对象,例如:
{ 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();
}
如何让所有对象在浏览器中正确显示?
答案 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?