下面的有效JSON文件:
{
"response": {
"player_count": 6453,
"result": 1
}
}
当我使用console.log(req.responseText)命令时,我得到:
{
"response": {
"player_count": 6453,
"result": 1
}
}
在我的节点服务器中使用以下内容时(通过向其发送JSON文件)在使用下面的代码时,我得到的是[object Object]:我认为这就是问题所在。
app.post('/steam-output', function(req,res){
var params = [];
for (var p in req.body){
params.push({'name':p,'value':req.body[p]})
}
console.log(params);
console.log(req.body);
var context = {};
context.dataList = params;
res.render('steam-output', context);
// steam-output is a handlebars file which is what my Node.js server is running
});
//here is the steam-output.handlebars file
<h1></h1>
<ul>
{{#each dataList}}
<li>{{this.name}}: {{this.value}}
{{/each}}
</ul>
它还提出了[object Object]。 任何有关这方面的帮助将不胜感激(请不要链接到其他网站,除非他们有完整的例子来解决这个问题。)
如果它只是这个JSON文件,则不会发生此问题:
{
"player_count": 6453,
"result": 1
}
答案 0 :(得分:1)
我认为你只是在迭代JSON的错误部分。如果您将for in
循环更改为此内容会发生什么?
for (var p in req.body.response){
params.push({'name':p,'value':req.body.response[p]})
}
答案 1 :(得分:0)
尝试以下代码
var esr = {
"response":{
"player_count":6453,
"result":1
}
}
var responseText = (JSON.parse(JSON.stringify(esr)));
alert(responseText.response.player_count); //out put 6453