首先,我在首次运行之前截断json文件。
在此之后,每次运行我都希望继续附加到json文件中。由于数据为空,因此首次运行时会显示“ SyntaxError:JSON输入意外结束”
public jsondata = (newdata: string) => {
var fs = require('fs');
fs.readFile('output.json', function (err, data) {
let json:any = [];
console.log('some data =' + data + '=');
if(data === '') {
json = JSON.parse(newdata);
json.push(newdata);
}
else {
json = JSON.parse(data);
json.push(newdata);
}
fs.writeFile('output.json', JSON.stringify(json, null, 4), (err) => {
if (err) throw err;
console.log('The json file has been saved');
});
});
}
答案 0 :(得分:2)
fs.readFile('output.json', 'utf-8', function (err, data) {
if (data === '') {
json.push(newdata);
}
代替
fs.readFile('output.json', function (err, data) {
if(data === '') {
json = JSON.parse(newdata);
json.push(newdata);
}
为什么:
如果output.json
为空
从fs.readFile('output.json', function (err, data) { ... })
,
data
是<Buffer >
而不是''
(空字符串)
因此,使用您的代码,if (data === '')
总是false
和
json = JSON.parse(data)
生成SyntaxError: Unexpected end of JSON input