Javascript 意外标记࿽;在JSON中的位置0

Javascript 意外标记࿽;在JSON中的位置0,javascript,node.js,json,Javascript,Node.js,Json,我有一个JS文件,它向API发出GET请求,然后API将结果输出到JSON文件。 在另一个JS文件中,需要通过读取来解析JSON文件,但遇到了错误 SyntaxError:意外标记� 在C:\Users\user\Desktop\node\u express\oncall\u api\readjson.js:5:24的JSON.parse()位置0处的JSON中 JS代码 const fs = require('fs'); fs.readFile('log.json', (err, data)

我有一个JS文件,它向API发出GET请求,然后API将结果输出到JSON文件。 在另一个JS文件中,需要通过读取来解析JSON文件,但遇到了错误

SyntaxError:意外标记� 在C:\Users\user\Desktop\node\u express\oncall\u api\readjson.js:5:24的JSON.parse()位置0处的JSON中

JS代码

const fs = require('fs');
fs.readFile('log.json', (err, data) => {
    if (err) throw err;
    let results = JSON.parse(data);
    console.log(results);
});
json文件

{“personName”:[“personOne”],“alsoNotifyList”:null,“currStart”:“2021-03-30T09:00:00-07:00”,“currEnd”:“2021-04-06T09:00:00-07:00”}

我已经手动删除了方括号,但这似乎也没有解决问题

此外,如果我将json内容硬编码到parse()函数中,它似乎可以以正确的格式打印json

let results = JSON.parse('{"personName":["personOne"],"alsoNotifyList":null,"currStart":"2021-03-30T09:00:00-07:00","currEnd":"2021-04-06T09:00:00-07:00"}');
console.log(results.personName) //works and return ['personOne']

很可能您只需要指定编码,因此,假设
utf8

fs.readFile('log.json', { encoding: 'utf8' }, (err, data) => {
或者,如果您使用的是旧版本的节点

fs.readFile('log.json', 'utf8', (err, data) => {

您的log.json文件是带有BOM或其他编码的UTF-8吗?看起来这个问题肯定与UTF-8有关。谢谢你的提示!