我有这个包含键和值对数组的对象.
console.log(myObject);
[ 'askdasuni.com': '11111',
'capsfrom2011.com': '22222',
'defusionet.com': '33333' ]
Run Code Online (Sandbox Code Playgroud)
当我在我的应用程序中调用res.send(myObject)时,我得到以下内容:
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Content-Type: application/json; charset=utf-8
< Content-Length: 2
< Date: Wed, 11 Mar 2015 18:15:41 GMT
< Connection: keep-alive
[]
Run Code Online (Sandbox Code Playgroud)
我希望它发送myObject的内容,而不仅仅是"[]".
如果我将代码更改为res.send('string'),我会得到以下内容:
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Content-Type: text/html; charset=utf-8
< Content-Length: 6
< Date: Wed, 11 Mar 2015 18:21:09 GMT
< Connection: keep-alive
<
string
Run Code Online (Sandbox Code Playgroud)
Phi*_*der 13
我有同样的问题,填充的"对象"作为空数组返回,尽管与console.log很好地显示.
经过检查,我发现我实际上已经初始化了一个数组,然后使用它就好像它是一个对象:
var myObject = [ ]
myObject['...'] = ...
...
res.send(myObject)
=> [ ]
Run Code Online (Sandbox Code Playgroud)
结果变量最好被描述为" 具有属性的空数组 "而不是对象,因此res.send()不返回这些值.
使用花括号将变量初始化为对象:
var myObject = { } <----- curly braces
myObject['...'] = ...
...
res.send(myObject)
=> { x : object-x, y : object-y, z : object-z }
Run Code Online (Sandbox Code Playgroud)
在返回之前将结果转换为对象,如下所示:
var myObject = [ ]
myObject['...'] = ...
...
var myObject = [ ]
let obj = { }
for (var key in myObject) {
obj[key] = myObject[key]
}
res.send(obj)
=> { x : object-x, y : object-y, z : object-z }
Run Code Online (Sandbox Code Playgroud)
尝试发送
res.json(myObject)
Run Code Online (Sandbox Code Playgroud)
res.json 确保响应具有 utf8 字符集和 application/json 内容类型
归档时间: |
|
查看次数: |
11637 次 |
最近记录: |