如何在 javascript / capserjs 的外部文件中将 json 对象添加到 json 数组
How to add a json object to a json array in an external file in javascript / capserjs
我正在用 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.
任何人都可以指出我正确的方向。提前谢谢你。
您有一个包含一些数据的 JSON 文件。
你:
- 读取该数据
- 修改那个数据
- 将该数据的修改版本附加到原始文件
这意味着文件现在有原始数据,紧接着是一个几乎完全相同的副本,只是添加了一点点。
您不需要原件。你只需要新版本。
您需要写入到文件而不是附加。
将 'a'
标志更改为 'w'
。
我正在用 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.
任何人都可以指出我正确的方向。提前谢谢你。
您有一个包含一些数据的 JSON 文件。
你:
- 读取该数据
- 修改那个数据
- 将该数据的修改版本附加到原始文件
这意味着文件现在有原始数据,紧接着是一个几乎完全相同的副本,只是添加了一点点。
您不需要原件。你只需要新版本。
您需要写入到文件而不是附加。
将 'a'
标志更改为 'w'
。