gson 在java中,将json对象追加到json文件的数组中,

nr9pn0ug  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(188)

我正在尝试将游戏结果存储在JSON文件中。结果在游戏结束时存储,并应该在之后显示在表格中。
我有一个函数可以创建游戏得分,并使用GSON将其添加到json文件中

private void createGameScoreGson () throws Exception {
        var gson = new GsonBuilder().setPrettyPrinting().create();
        var score = new ScoreResult();
        score.setPlayerName(name);
        score.setSteps(steps);
        score.setTime(time);
        score.setSolved(solved);

        // writing to a json file
        File file = new File("src\\main\\resources\\results.json");
        try (var writer = new FileWriter("resources\\results.json", true)) {
            gson.toJson(score, writer);
        }
}

该方法创建的JSON文件如下所示:

{
    "playerName": "a",
    "steps": 1,
    "time": "00:00:11",
    "solved": false
}

问题是当我尝试向文件中添加另一个游戏结果时,它显示如下:

{
    "playerName": "a",
    "steps": 1,
    "time": "00:00:11",
    "solved": false
}
{
    "playerName": "b",
    "steps": 2,
    "time": "00:00:20",
    "solved": false
}

这不是一个有效的JSON文件,所以当我稍后试图显示结果时,它不能被正确读取。我如何使用Gson(或其他任何东西)来显示JSON文件中的结果,如下所示:

[
 {
    "playerName": "a",
    "steps": 1,
    "time": "00:00:11",
    "solved": false
 },
 {
    "playerName": "b",
    "steps": 2,
    "time": "00:00:20",
    "solved": false
 }
]

任何建议都将是有帮助的!

igsr9ssn

igsr9ssn1#

这应该对你有用,但是如果文件中有很多条目,那么我认为有必要改变方法。
添加Maven依赖项:
第一个

相关问题