【问题标题】:Push new data to external JSON file将新数据推送到外部 JSON 文件
【发布时间】:2016-01-12 03:42:35
【问题描述】:

我正在尝试将新对象推送到外部 Javascript 文档中,但在拉入要写入的 JSON 文件时遇到问题。我有一个名为 check.json 的外部本地文件。

如何在node中正确调用外部json文件?

var newData = JSON.parse(check.json);

newData.check.push({
   cheap: $el.text()
});

check.json = JSON.stringify(newData);

【问题讨论】:

    标签: javascript arrays json node.js


    【解决方案1】:

    您可以使用Filesystem 对象来读取和写入文件。具体来说,readFilewriteFile 方法。

    例如,阅读:

    fs.readFile('/path/to/my/json.json', function (err, data) {
      if (err) throw err;
      var newData = JSON.parse(data);
    });
    

    也就是说,平面文件不是存储数据和像数据库一样访问的好格式。您可能会遇到竞争条件并丢失数据。使用真正的数据库会更好地为您处理这类事情。

    SQLite 给你一个简单的文件(但在它周围有很多保护)。如果您真的想要 JSON 作为存储格式,那么您可以查看 couchDB 之类的内容。

    【讨论】:

    • 不错的答案,我不知道这个选项。
    • 我想做的是从一个函数中存储一些数据并检查它是否已经在 J​​SON 文件中。如果它已经在 J​​SON 中,该函数将退出。如果不是,该功能将继续。我发现 readFile / writeFile 的问题是我一直在覆盖 JSON 文件中的数据,而不是添加到它,这是我的预期行为。我已经对上述内容进行了测试,发现我的数据被覆盖了。考虑到这一点,您能否提供一个向 JSON 添加新对象的解决方案?干杯@Quentin。
    • 1.从 JSON 文件中读取。 2. 将 JSON 解析成数据结构。 3. 将您的数据添加到该数据结构中。 4. 将该数据转换为 JSON。 5. 写入文件。 (或者使用我之前推荐的真实数据库)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2019-01-02
    • 2021-10-11
    • 2019-02-21
    相关资源
    最近更新 更多