我正在使用ExpressJS编写我的应用程序和jsonfile(https://www.npmjs.com/package/jsonfile)来处理json文件。我有以下json文件:
{
"news": [
{
"id": "1",
"title": "News 1 heading",
"description": "Lorem ipsum dolor sit amet upidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"dateposted": "00188292929"
},
{
"id": "2",
"title": "News 2 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
}
]
}
现在,我想在“新闻”节点下添加另一组新闻,以便我的最终json看起来像这样:
{
"news": [
{
"id": "1",
"title": "News 1 heading",
"description": "Lorem ipsum dolor sit amet upidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"dateposted": "00188292929"
},
{
"id": "2",
"title": "News 2 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
},
{
"id": "3",
"title": "News 3 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
}
]
}
jsonfile有一个append标志,但是它附加在文件的末尾而不是给定节点下。如何在现有节点下附加数据?做,我需要字符串化json,添加数据和JSONfy吗?或者有更直接的方式?
感谢。
答案 0 :(得分:1)
您可以使用Json PUSH将json对象附加到当前节点。代码如下所示:
var json={
"news": [
{
"id": "1",
"title": "News 1 heading",
"description": "Lorem ipsum dolor sit amet upidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"dateposted": "00188292929"
},
{
"id": "2",
"title": "News 2 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
},
{
"id": "3",
"title": "News 3 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
}
]
};
json.news.push({
"id": "3",
"title": "News 3 heading",
"description": "Lorem ipsum dolor sit amet",
"dateposted": "00188292929"
});
console.log(json);
答案 1 :(得分:0)
Jsonfile的append选项是指在追加模式下打开文件,在这种模式下,你只能添加到文件的末尾。
您需要使用普通的writeFile选项重写整个文件。有效地覆盖原始文件。
你可以在jsonfile code on line 91(它是一个简短的单文件节点模块)中看到它只是将append标志传递给fs.writeFile。我并不完全确定你什么时候会诚实地使用它,但是如果你想输出一堆文件然后附加在每个文件底部的一些json上,我就会假设它。