首页 > 解决方案 > 如何将多个对象添加到一个 JSON 文件中,然后列出该文件中的所有内容?[JSON、JavaScript]

问题描述

这是我的代码:

    const addReaction = {
    reaction: `${args[0]}`,
    webhook: `${args[1]}`,
    }

    const jsonString = JSON.stringify(addReaction);

    fs.appendFileSync('./reactions.json', jsonString, err => {
    if (err) {
        console.log(err);
    } else {
        console.log("Success!");
    }
    });

运行命令后,应将 addReaction var 放入response.json 文件中,然后可以再次运行,再次添加 addReaction var 以及不同的用户输入。然后使用不同的命令,我可以读取文件。

标签: javascriptnode.jsjsonobject

解决方案


您不能只附加到 JSON 字符串,您将获得无效的 JSON。您应该解析 JSON,修改数据,然后再次 JSONify。

建议

// reactions.json
[
  {"reaction": "blah", "webhook": "bleh"} 
]

// add-reaction.js

const addReaction = {
  reaction: `${args[0]}`,
  webhook: `${args[1]}`,
}
const rawdata = fs.readFileSync('./add-reactions.json');
const reactions = JSON.parse(rawdata);
reactions.push(addReaction);
fs.writeFileSync( './add-reactions.json', JSON.stringify(reactions), fileOptions );   

推荐阅读