我正在写一个casperjs中的json文件,我正在尝试向它添加新对象。
json文件看起来像
{ "visited": [
{
"id": "258b5ee8-9538-4480-8109-58afe741dc2f",
"url": "https://................"
},
{
"id": "5304de97-a970-48f2-9d3b-a750bad5416c",
"url": "https://.............."
},
{
"id": "0fc7a072-7e94-46d6-b38c-9c7aedbdaded",
"url": "https://................."
}]}
要添加到数组的代码是
var data;
if (fs.isFile(FILENAME)) {
data = fs.read(FILENAME);
} else {
data = JSON.stringify({ 'visited': [] });
}
var json = JSON.parse(data);
json.visited.push(visiteddata);
data = JSON.stringify(json, null, '\n');
fs.write(FILENAME, data, "a");
首先在现有的{“visited”:[]}数组下面添加一个新的{“visited”:[]}数组和第一对对象,然后脚本中断因为json数组不再有效的json。
任何人都可以指出我正确的方向。提前谢谢。
答案 0 :(得分:2)
您有一个包含一些数据的JSON文件。
您:
这意味着该文件现在具有原始数据,然后,在它之后立即添加一个几乎相同的副本。
你不需要原件。您只需要新版本。
您需要写到该文件,而不是追加。
将'a'
标记更改为'w'
。