Node Express错误地解析了JSON请求正文

时间:2013-07-31 16:51:50

标签: node.js express

我从Web客户端发送一个JSON对象,如下所示:

{"AudioEncoder":{"Settings":{"1":{"audio_bitrate":"16000"}}}}

在我从req.body.myvalue得到的请求中

{"AudioEncoder":{"Settings":[null,{"audio_bitrate":"16000"}]}}

在浏览器的“网络”面板中,我看到了正确的值:

myvalue[AudioEncoder][Settings][1][audio_bitrate]:16000

错误是我希望对象使用密钥{1:...,但得到[null:...

任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

我怀疑您的浏览器实际上并没有发送JSON,而是发送application/x-www-form-urlencoded。如果您尝试让浏览器发送JSON:myvalue[AudioEncoder][Settings][1][audio_bitrate]:16000,则这不是正确的值。那不是JSON。检查Content-Type的请求标头,然后查看请求的原始主体以验证这一点。如果你发布了发送AJAX的浏览器JS,我们可以帮你解决这个问题。 jQuery使得正确指定选项以使其真正发送JSON变得有点棘手。