如何使用Javascript写入JSON文件?

时间:2018-07-18 04:48:48

标签: javascript json node.js discord.js

这是针对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;

1 个答案:

答案 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(文件描述符)。