如何使用Javascript写入JSON文件?
这是一个Discord机器人,所以我使用node.js 代码更改了变量,因此它只更改了变量而不是文件,这是完全有意义的,但是我如何能够使用类似的方法更改JSON文件呢如何使用Javascript写入JSON文件?,javascript,json,node.js,discord.js,Javascript,Json,Node.js,Discord.js,这是一个Discord机器人,所以我使用node.js 代码更改了变量,因此它只更改了变量而不是文件,这是完全有意义的,但是我如何能够使用类似的方法更改JSON文件呢 { "Tournament": { "teamCount": "4", "matchCount": "3", "Team": [ { "name": "Team1" }, { "name": "Team2" },
{
"Tournament": {
"teamCount": "4",
"matchCount": "3",
"Team": [
{
"name": "Team1"
},
{
"name": "Team2"
},
{
"name": "Team3"
},
{
"name": "Team4"
}
],
"Matches": [
{
"GameCode": "1111",
"TeamOne": "Team1",
"TeamTwo": "Team2",
"Date": "1/1/2018",
"Game_Time": "0800",
"GameStatus": "FALSE"
},
{
"GameCode": "1112",
"TeamOne": "Team3",
"TeamTwo": "Team4",
"Date": "1/1/2018",
"Game_Time": "1000",
"GameStatus": "FALSE"
},
{
"GameCode": "1113",
"TeamOne": "Team1",
"TeamTwo": "Team4",
"Date": "1/1/2018",
"Game_Time": "1000",
"GameStatus": "FALSE"
}
]
}
}
case "datechange":
message.channel.send("Date Before Change: " + file.Tournament.Matches[0].Date);
cancer.Tournament.Matches.Date = "test";
message.channel.send("Date Before Change: " + file.Tournament.Matches[0].Date);
break;
您只需在变量更改后将更改写入文件。您可以使用
fs
编写这样的函数
fs = require('fs');
function updateDateInFile(file, index, field, date){
file.Tournament.Matches[index][field] = date;
fs.writeFile('fileName.json', JSON.stringify(file));
}
所以你可以
case "datechange":
message.channel.send("Date Before Change: " + file.Tournament.Matches[0].Date);
cancer.Tournament.Matches.Date = "test";
updateDateInFile(file, 0, 'Date', cancer.Tournament.Matches.Date);
message.channel.send("Date Before Change: " + file.Tournament.Matches[0].Date);
break;
您不需要在
fs.writeFile
之后使用fs.close
,因为它不会返回fd
(文件描述符)。到目前为止您尝试了什么?您能解释一下您做了什么,具体来说,您卡在哪里了吗?Json文件是javascript对象,所以请阅读、修改、编写它。我想给你举个例子,但我对JS不太在行。到目前为止,在switch案例中(如下所示,可能有点难理解),我只尝试过更改日期,但这并不奏效,但下面的答案可能会有所帮助,我会检查一下,然后更新你的资料。你也可以用其他东西更改日期,比如比赛时间,对吗?@muhammaddiddiqui是的,你可以。我更新了答案。JSON文件的格式不再像原来那样,而是全部放在一行中