例如,如果我有此JSON文件:
{
"player": {
"gold":100,
"diamonds":100,
"username":"placeholder"
}
}
玩家的黄金数量被修改,我只想覆盖黄金价值,我该如何编码?
到目前为止,这是我所能拥有的,但是它会覆盖整个JSON文件,而我只想覆盖一个值。
public void save(Player player, String path) {
Json json = new Json();
String txt = json.toJson(player);
FileHandle file = Gdx.files.local(path);
file.writeString(json.prettyPrint(txt), true);
}
答案 0 :(得分:0)
您必须覆盖整个文件,因此最好为播放器使用一个单独的文件。
赞这个player.json
{
"gold":100,
"diamonds":100,
"username":"placeholder"
}
还有Player.java
public class Player {
public int gold;
public int diamonds;
public String username;
}
使用以下代码将修改并将数据保存到json文件中。
Json json = new Json();
FileHandle file = Gdx.files.local("player.json");
Player player = file.exists()? json.fromJson(Player.class,file) : new Player();
player.gold=300; // modify player data
save(player,file);
然后调用保存方法,如下所示:
private void save(Player player, FileHandle file) {
Json json = new Json();
json.setTypeName(null);
json.setUsePrototypes(false);
json.setIgnoreUnknownFields(true);
json.setOutputType(JsonWriter.OutputType.json);
String txt = json.toJson(player);
file.writeString(json.prettyPrint(txt), false);
}