gpt4 book ai didi

javascript - 从 Express API 返回的 JSON 对象带有引号 - 为什么?以及如何解决?

转载 作者:行者123 更新时间:2023-12-01 01:41:25 25 4
gpt4 key购买 nike

我知道这对我来说是一个愚蠢的错误,但我正在挠头试图找出哪里出错了。我之前编写过 MERN 堆栈应用程序,但没有遇到过这种情况:我的 JSON 数据返回时用双引号括起来。

在服务器端,我正在读取格式如下的文件(使用 fs.readFile)

{"projects":[
{
"project1": {
"title": "something",
"date": "sometime",
"text": "some stuff",
"img": "some url"
}
}
]}

并如此服务

router.get('/projects', function (req, res) {
logic.getProjects()
.then(projects => res.json(projects))
.catch(err => console.error(err))

在客户端我获取它

 getProjects() {
return fetch('/api/projects',{ headers:{'Content-Type': 'application/json'}})
.then(res => res.json())
.catch(err => console.log(err))
}

但是我的 React 应用程序收到的是

"   {"projects":[
{
"project1": {
"title": "something",
"date": "sometime",
"text": "some stuff",
"img": "some url"
}
}
]} "

也就是说,它被双引号括起来,尽管——据我所知——它已经被解析了。如果有人能指出我的错误(除了我之外,对每个人来说肯定都是显而易见的),我将不胜感激!

最佳答案

readFile 返回一个字符串。您将需要 JSON.parse(readFile) 并发送它。

你的路线需要类似于

router.get('/projects', function (req, res) {
logic.getProjects()
.then(projects => JSON.parse(projects))
.then(jsonProjects => res.json(jsonProjects))
.catch(err => console.error(err))

关于javascript - 从 Express API 返回的 JSON 对象带有引号 - 为什么?以及如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52367767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com