在Koa中返回JSON

时间:2018-11-16 03:51:14

标签: node.js koa

我在路由器中通过POST方法接收JSON,然后返回给用户。由于某种原因,返回的JSON会将所有数字和布尔值转换为字符串。如果相关,我正在使用koa-bodyparser。

有什么办法可以避免这种情况?

代码:

var js = ctx.request.body.json;
ctx.body = {
                status: 'success',
                json: js
};

输入JSON:

{
"json": {
       "numbers": 123
        }
}

输出JSON:

{
"json": {
       "numbers": "123"
        }
}

1 个答案:

答案 0 :(得分:0)

默认情况下严格模式已处于活动状态(https://github.com/cojs/co-body#options),因此您不必担心它。这段代码对我有用:

  ctx.body = {
    status: 'success',
    json: ctx.request.body.json
  };

我使用邮递员将其发送到koa服务器,并在邮递员中收到以下答案:

  {
    "status": "success",
    "json": {
        "id": 1,
        "name": "Joe"
    }
  }

如您所见,“ id”是一个数字。由于您没有撰写有关客户的文章,因此我认为它可能是浏览器?如果是这样,请尝试使用JSON.parse()函数,因为您可能会在请求后得到一个字符串。参见以下示例:

JSON.parse("{\"json\":{\"id\":1}}");

您还可以尝试使用Postman作为客户端,看看是否可行(https://www.getpostman.com/)。