这是针对Discord机器人的,所以我正在使用node.js。
代码更改了变量,因此,它只更改了变量而不是文件,这是很有意义的,但是我将如何使用类似的方法来更改JSON文件
{
"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;
答案 0 :(得分:0)
您只需要在变量更改后将更改写入文件即可。您可以使用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.close
之后使用fs.writeFile
,因为它不会返回fd
(文件描述符)。