我正在尝试将游戏结果存储在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
}
]
任何建议都将是有帮助的!
1条答案
按热度按时间igsr9ssn1#
这应该对你有用,但是如果文件中有很多条目,那么我认为有必要改变方法。
添加Maven依赖项:
第一个