如何解决此 JSON 解析问题?
How do I fix this JSON parsing issue?
我在 HTML 中将带有 fetch()
的数据发送到快递 API,这就是它在 req.body
中的结果(我使用 body-parser)
{
'{"address":"a","town":"NYC","details":"a","appr":': { '"Car1"': '' }
}
这都是“字符串”,因为我知道“解析”以发送它的唯一方法是用 JSON.stringify 发送它。但是,在获取信息后,它是“无法解析的”,JSON.parse 错误 "unexpected string in JSON at position 62"
我这样发送:
body: JSON.stringify({
address: address,
town: town,
details: details,
appr: apr,
}),
我已经尝试了所有我知道如何做的事情来尝试再次“使其成为 JSON”,但没有任何效果。
1 - 不要忘记将 header 添加到 fetch
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json' // => this is important
},
body: JSON.stringify(data)
});
2 - 不要忘记在 express
上添加这个
app.use(bodyParser.json())
注意: 如果您使用的是 Express v4.16.0 或更新版本,则可以使用 built-in 中间件。感谢@Dov Rine
app.use(express.json());
3 - req.body 之后将作为 object 可用。你不应该使用 JSON.parse(req.body) 因为 body-parser 为你做了这个。
let address = req.body.address;
我在 HTML 中将带有 fetch()
的数据发送到快递 API,这就是它在 req.body
中的结果(我使用 body-parser)
{
'{"address":"a","town":"NYC","details":"a","appr":': { '"Car1"': '' }
}
这都是“字符串”,因为我知道“解析”以发送它的唯一方法是用 JSON.stringify 发送它。但是,在获取信息后,它是“无法解析的”,JSON.parse 错误 "unexpected string in JSON at position 62"
我这样发送:
body: JSON.stringify({
address: address,
town: town,
details: details,
appr: apr,
}),
我已经尝试了所有我知道如何做的事情来尝试再次“使其成为 JSON”,但没有任何效果。
1 - 不要忘记将 header 添加到 fetch
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json' // => this is important
},
body: JSON.stringify(data)
});
2 - 不要忘记在 express
上添加这个app.use(bodyParser.json())
注意: 如果您使用的是 Express v4.16.0 或更新版本,则可以使用 built-in 中间件。感谢@Dov Rine
app.use(express.json());
3 - req.body 之后将作为 object 可用。你不应该使用 JSON.parse(req.body) 因为 body-parser 为你做了这个。
let address = req.body.address;