我在路由器中通过POST方法接收JSON,然后将其返回给用户。由于某种原因,返回的JSON会将所有数值和布尔值强制转换为string。如果相关的话,我正在使用koa-bodyparser。
有什么方法可以避免这种情况吗?
代码:
var js = ctx.request.body.json;
ctx.body = {
status: 'success',
json: js
};输入JSON:
{
"json": {
"numbers": 123
}
}输出JSON:
{
"json": {
"numbers": "123"
}
}发布于 2019-02-05 04:58:15
严格模式在默认情况下已经处于活动状态(https://github.com/cojs/co-body#options),因此您不必担心它。下面的代码适用于我:
ctx.body = {
status: 'success',
json: ctx.request.body.json
};我使用Postman将其发送到koa服务器,并在Postman中收到答案:
{
"status": "success",
"json": {
"id": 1,
"name": "Joe"
}
}正如你所看到的,'id‘是一个数字。因为你没有写关于你的客户,我猜可能是浏览器吧?如果是这样,请尝试使用JSON.parse()函数,因为您可能会从post请求中获得字符串。请参阅此示例:
JSON.parse("{\"json\":{\"id\":1}}");您还可以尝试将Postman作为客户端,看看它是否有效(https://www.getpostman.com/)。
https://stackoverflow.com/questions/53331160
复制相似问题