Javascript 尝试执行axios post请求时JSON输入意外结束
我犯了这个错误-Javascript 尝试执行axios post请求时JSON输入意外结束,javascript,axios,http-post,Javascript,Axios,Http Post,我犯了这个错误- "SyntaxError: C:\Users\ts\Desktop\react projects\tasks\server\cards.json: Unexpected end of JSON input" 我看到了很多解决这个错误的方法,但没有找到解决方法。 当我尝试将新对象添加到包含JSON对象数组的JSON文件时,会出现此错误 JSON文件的示例- [{“数字”:12, “颜色”:“蓝色”}, {“数字”:10, “颜色”:“红色”} }] 即将写
"SyntaxError: C:\Users\ts\Desktop\react projects\tasks\server\cards.json: Unexpected end of JSON input"
我看到了很多解决这个错误的方法,但没有找到解决方法。
当我尝试将新对象添加到包含JSON对象数组的JSON文件时,会出现此错误
JSON文件的示例-
[{“数字”:12,
“颜色”:“蓝色”},
{“数字”:10,
“颜色”:“红色”}
}]
即将写入文件的卡的示例-
{
“数字”:10,
“颜色”:“蓝色”
}
客户请求-
const cloneTicket=(票证:票证)=>{
post(APIRoot+/clone/card',card)。然后((响应)=>{
控制台日志(响应);
},(错误)=>{
console.log(error.response.data);
});
}
服务器-
app.post(APIPath+'/clone/card',(req,res)=>{
const cards=fs.readFileSync('cards.json');
让cards\u json=json.parse(cards)
卡片推送(请求正文)
const new_jsons=JSON.stringify(cards_JSON,null,2)
fs.writeFileSync('cards.json',new_jsons,(res:any)=>{
console.log(res)
})
res.send(新的)
})
cards.json文件-
[
{
"number": 12,
"color": "blue"
},
{
"number": 10,
"color": "red"
}
]
以及从\server\cards.json抛出的错误。我想我找到了修复方法,请更改此行:
constcards=fs.readFileSync('cards.json')代码>
到
constcards=fs.readFileSync('cards.json','utf8')代码>
当您不向readFileSync
提供编码类型时,它将返回一个缓冲区,而不是文件内容。然后,缓冲区将无法正确地JSON.parse()
ed
文档:该示例不是有效的JSON。(编辑:现在是)请签出json示例@MetByrdy我不明白,这些示例没有使用有效的json?json中的单引号不是真的有效,你也忘记了红色结尾的一个:)@tsilver既然json示例是正确的,您仍然会收到相同的错误吗?仍然会收到错误。该错误可能与您的示例JSON文件不符。您会遇到什么错误?我将更新的JSON文件添加到原始问题消息卡中有什么?你能做一个console.log并共享输出吗?直接从控制台cards=cards_json=[{number:12,颜色:'red'},{number:10,颜色:'blue'}]