【发布时间】:2021-03-03 20:07:26
【问题描述】:
我收到此错误 -
"SyntaxError: C:\Users\ts\Desktop\react projects\tasks\server\cards.json: Unexpected end of JSON input"
我看到了很多解决此错误的方法,但无法提出解决方案。 当我尝试将新对象添加到具有 JSON 对象数组的 JSON 文件时出现此错误。
JSON 文件示例-
[{"number":12,
"color":"blue"},
{"number":10,
"color":"red"}
}]
即将写入文件的卡示例-
{
"number":10,
"color":"blue"
}
客户请求-
const cloneTicket = (ticket: Ticket) => {
axios.post(APIRoot+'/clone/card', card).then((response) => {
console.log(response);
}, (error) => {
console.log(error.response.data);
});
}
服务器 -
app.post(APIPath + '/clone/card', (req, res) => {
const cards = fs.readFileSync('cards.json');
let cards_json = JSON.parse(cards)
cards_json.push(req.body)
const new_jsons = JSON.stringify(cards_json,null,2)
fs.writeFileSync('cards.json', new_jsons, (res:any)=>{
console.log(res)
})
res.send(new_jsons)
})
cards.json 文件-
[
{
"number": 12,
"color": "blue"
},
{
"number": 10,
"color": "red"
}
]
以及从 \server\cards.json 抛出的错误。
【问题讨论】:
-
该示例不是有效的 JSON。 (编辑:现在是)
-
@MetByrdy 我不明白,那些例子没有使用有效的 JSON?
-
json 中的单引号并不是真正有效的,你也忘了在红色的末尾有一个 :)
-
@tsilver 既然 JSON 示例是正确的,您是否仍然遇到同样的错误?
标签: javascript axios http-post