我从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:...
。
任何想法为什么会发生这种情况?
答案 0 :(得分:1)
我怀疑您的浏览器实际上并没有发送JSON,而是发送application/x-www-form-urlencoded
。如果您尝试让浏览器发送JSON:myvalue[AudioEncoder][Settings][1][audio_bitrate]:16000
,则这不是正确的值。那不是JSON。检查Content-Type
的请求标头,然后查看请求的原始主体以验证这一点。如果你发布了发送AJAX的浏览器JS,我们可以帮你解决这个问题。 jQuery使得正确指定选项以使其真正发送JSON变得有点棘手。