node.js - 在 Koa 中返回 JSON
问题描述
我在路由器中通过 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"
}
}
解决方案
默认情况下,严格模式已经处于活动状态(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() 函数,因为您可能会从您的后请求中获得一个字符串。看这个例子:
JSON.parse("{\"json\":{\"id\":1}}");
您也可以尝试将 Postman 作为客户端,看看是否可行(https://www.getpostman.com/)。
推荐阅读
- python - 计算上一年的实例
- oauth - 访问共享邮箱的此类 oauth 令牌必须存在 ExchangeImpersonation SOAP 标头
- python - Assistance needed with this if/else: linear equation assignment for school
- java - Maze Java 中的错误回溯
- python - 未找到变量名
- python - 根据另一个数据帧中的日期计算一个数据帧的数量总和(Python)
- python-3.x - 如何安装第三方模块(Mu)?
- swift - 无法在 swift 中使用 userdefaults 登录所有注册用户
- node.js - SyntaxError:在 Node.js express 网络服务器上安装 socket.io 后出现意外标识符
- mysql-python - 如何在 Mac OS X 上安装 MySQLdb?