我在路由器中通过 POST 方法接收 JSON,然后将其返回给用户。由于某种原因,返回的 JSON 会将所有数字和布尔值转换为字符串。如果相关的话,我正在使用 koa-bodyparser 。
有什么办法可以避免这种情况吗?
代码:
var js = ctx.request.body.json;
ctx.body = {
status: 'success',
json: js
};
Run Code Online (Sandbox Code Playgroud)
输入 JSON:
{
"json": {
"numbers": 123
}
}
Run Code Online (Sandbox Code Playgroud)
输出 JSON:
{
"json": {
"numbers": "123"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
严格模式默认已处于活动状态(https://github.com/cojs/co-body#options),因此您无需担心它。这段代码对我有用:
ctx.body = {
status: 'success',
json: ctx.request.body.json
};
Run Code Online (Sandbox Code Playgroud)
我使用Postman将其发送到koa服务器并在Postman中收到答案:
{
"status": "success",
"json": {
"id": 1,
"name": "Joe"
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,“id”是一个数字。由于您没有写有关您的客户端的信息,我认为它可能是浏览器?如果是这样,请尝试使用 JSON.parse() 函数,因为您可能会从后请求中获取字符串。看这个例子:
JSON.parse("{\"json\":{\"id\":1}}");
Run Code Online (Sandbox Code Playgroud)
您还可以尝试将 Postman 作为客户端,看看是否有效(https://www.getpostman.com/)。
| 归档时间: |
|
| 查看次数: |
10397 次 |
| 最近记录: |