将 JSON 数据写入 JSON 文件并使用 FS 读取

Writing JSON data to a JSON file and reading using FS

基本上,我有代码将 json 数据添加到我拥有的特定 json 文件中。代码本身可以工作,但我希望它在 json 文件的 table 中实现。我还希望能够读取 json 文件中的信息(具体看它有什么 id,如果 message.author 有那个 id,然后 return 一条消息说它被禁止连同原因)

注意:此代码的目的是在 Discord 平台上使用,使用 discord.js 库。

JSON 文件:

{
    "bans": [
        {
        "id": "218931839123128",
        "reason": "yes"
    },
    {
        "id": "273618444",
        "reason": "no"
    }
]
}

代码:

        let format = {
                "id": target, //args[0]
                "reason": reason //args[1]
        }

fs.appendFile('banlist.json', JSON.stringify(format), function (err) {
  if (err) throw err;
  message.channel.send("Added.")
  console.log('Saved!');
});

为了将对象附加到 JSON 文件中的数组,您可能需要执行以下操作:

  1. 读取JSON文件
  2. 将 JSON 文件解析为 JavaScript 个对象
  3. 将您的对象添加到指定数组
  4. 将您的对象字符串化为 JSON 字符串
  5. 写入JSON文件

fs.appendFile() 将数据添加到文件末尾,可能不是您要查找的内容。

以下是工作代码的示例:

const fs = require("fs");
const dataToAdd = {
  id: "target",
  reason: "reason"
};

// Read the JSON file
const JSONString = fs.readFileSync("./banlist.json", "utf8");

// Parse the JSON file
const JSData = JSON.parse(JSONString);

// Add object to the array
JSData.push(dataToAdd);

// Stringify the data
const newJSONString = JSON.stringify(JSData, null, 2);

// Write the file
fs.writeFileSync("./banlist.json", newJSONString);

要比较 JSON 文件中的数据并通知用户被禁止:

  1. 阅读JSON
  2. 解析 JSON
  3. 使用某种算法或循环,检查并比较数据
  4. 如果数据匹配,则输出该用户被禁止