javascript - JSON 中位置 0 处的意外标记
问题描述
我有一个 JS 文件,它向 API 发出 GET 请求,然后将结果输出到 JSON 文件。在另一个JS文件中,它是通过读取它来解析JSON文件,但是遇到了错误。
SyntaxError: Unexpected token � in JSON at position 0 at JSON.parse (<anonymous>) at C:\Users\user\Desktop\node_express\oncall_api\readjson.js:5:24
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) => {
推荐阅读
- google-apps-script - 将数据从 Google 表格上传到 BigQuery
- r - 在 ggplot 中创建条形图,其中条形的宽度与变量相关联
- c++ - OSX Catalina 上的 C++ 和 gems 问题
- ruby - 使用嵌套属性的 where 条件访问子级
- maven - Maven 工件未与 pom 文件一起上传
- reactjs - 将 react-day-picker 范围限制为 x 天
- java - Java 到 Slack API:SlackError{type=MISSING_SCOPE, error=missing_scope}
- typescript - Typescript - 如何从哈希图中删除值?
- dictionary - python嵌套字典中的棘手行为
- php - 如何在 wordpress 中删除数据库中的主表而不丢失 wordpress 站点?