大家好,谁能帮我看看为什么JSON.parse(data)这一步会包如下错误:
const fs = require('fs')
const path = 'D:\安装包\eclipse\eclipse-jee-oxygen-R-win32-x86_64\eclipse-jee-oxygen-R-win32-x86_64\eclipse\piaopiao_js\data.json';
//1.读取data.json文件
fs.readFile(path, 'utf8', (err, data) => {
if (err) {
console.log(err)
return
}
console.log(data);
//2.将字符串数据转变成数组格式
let arr = JSON.parse(data);
// console.log(arr);
let obj = { "name": "小5" };
//2.1.给数组添加元素
arr.push(obj);
let newArr = JSON.stringify(arr);//将数组转成json格式
// console.log(newArr);
//3.写入需要的文件当中
fs.writeFile(dir, newArr, 'utf8', (err) => {
console.log('写入成功', err)
})
})
undefined:1
[
^
SyntaxError: Unexpected token in JSON at position 0
at JSON.parse ()
at D:\安装包\eclipse\eclipse-jee-oxygen-R-win32-x86_64\eclipse-jee-oxygen-R-win32-x86_64\eclipse\piaopiao_js\write-json.js:34:18
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
感觉你拿到的就是array,把let arr = JSON.parse(data); 改成--> let arr = data; 试试
说明 data 不是 标准的json格式,你打印一下看看
{
data:[
{ }
]
}