如何通过节点js将子节点添加到现有的json文件?

问题描述 投票:1回答:2

我正在使用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吗?或者有更直接的方式?

谢谢。

json node.js express
2个回答
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);
   

0
投票

Jsonfile的append选项是指在追加模式下打开文件,在这种模式下你只能添加到文件的末尾。

您需要使用普通的writeFile选项重写整个文件。有效地覆盖原始文件。

你可以在jsonfile中看到code on line 91(它是一个简短的单文件节点模块),它只是将append标志传递给fs.writeFile。我并不完全确定你什么时候会诚实地使用它,但是如果你想输出一堆文件然后在每个文件的底部附加一些json,我就会假设它。

© www.soinside.com 2019 - 2024. All rights reserved.