【发布时间】:2017-05-24 12:32:40
【问题描述】:
我正在写入 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。
谁能指出我正确的方向。提前谢谢你。
【问题讨论】:
-
而不是
s.write(FILENAME, data, "a");(追加模式)使用s.write(FILENAME, data, "w");(覆盖模式)。 -
谢谢。不敢相信我浪费了 45 分钟的生命试图弄清楚这一点!!!
-
将其视为一项投资。下一次,你会更快地发现这样的错误。
标签: javascript json casperjs