我在路由器中通过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"
}
}
答案 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/)。