gpt4 book ai didi

JavaScript:如何将数据添加到 JSON 文件内的数组

转载 作者:行者123 更新时间:2023-12-01 02:19:24 25 4
gpt4 key购买 nike

我正在尝试构建一个简单的 Discord.js 机器人,但在将用户输入添加到存储在 json 文件中的数组时遇到问题。

我想要一个 json 文件来存储机器人可以利用的信息,包括用户也可以添加的引号数组。目前,settings.json 文件如下所示:

{ "token" : , //connection token here

"prefix" : "|", //the prefix within messages that identifies a command

"quotes" : [] //array storing a range of quotes
}

然后,我可以从数组中提取信息,从当前存储的信息中选择随机引用,如下所示:

const config = require("./settings.json");

var quotes = config.quotes;

function randomQuote() {
return quotes[Math.floor(Math.random() * quotes.length)];
};


if(message.content.toLowerCase() === prefix + "quote") {

message.channel.send(randomQuote());

}

这一切都按预期工作,但我一生都无法弄清楚如何允许用户向数组添加引号(它会使用类似 |addquote 的命令)。我知道,为了将数据写入 json 文件,我会使用这样的东西:

var fs = require('fs');

let test = JSON.parse(fs.readFileSync("./test.json", "utf8"));

if(message.content.toLowerCase() === 'test') {

test++;

fs.writeFile("./test.json", JSON.stringify(test), (err) => {
if (err) console.error(err)
});

}

但是我现在想做的是什么 - 定位现有 json 文件中的特定数组,该文件包含与数组分开的其他数据,并添加一个新条目而不是覆盖那里的内容 - 我几乎被难住了。我环顾四周,但要么我没有找到我要找的东西,要么当我找到它时我无法理解它。有人可以帮我吗?

最佳答案

将新项目插入数组:

config.quotes.push(newQuote);

编辑:我应该指出,使用 require 以这种方式读取 JSON 文件可能会缓存它,因此您对文件所做的更改可能不会显示下次您需要它时。

关于JavaScript:如何将数据添加到 JSON 文件内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com