如何使用Javascript写入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" },

这是一个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;

您只需在变量更改后将更改写入文件。您可以使用
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文件的格式不再像原来那样,而是全部放在一行中