JSON文件有效但我无法解析它

时间:2016-05-18 23:43:19

标签: javascript json node.js parsing handlebars.js

下面的有效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
 }

2 个答案:

答案 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