Java 使用libGDX写入Json
我不熟悉Json和libGDX,但我已经创建了一个简单的游戏,我想将玩家姓名和他们的分数存储在Json文件中。有办法做到这一点吗?我想在Java 使用libGDX写入Json,java,android,json,libgdx,Java,Android,Json,Libgdx,我不熟悉Json和libGDX,但我已经创建了一个简单的游戏,我想将玩家姓名和他们的分数存储在Json文件中。有办法做到这一点吗?我想在Gdx.files.localStorage中创建一个Json文件,如果它不存在,则向它添加新数据 我已检查以下地址给出的代码: 1> 2> 但我没有找到如何实际创建Json文件并向其写入多个唯一的对象值(每个玩家的姓名和分数)。我从他们的密码中漏掉了什么吗 这提到了如何加载现有的json,但没有其他内容。首先,我必须说,我自己从未使用过Libgdx。但我想帮你
Gdx.files.localStorage
中创建一个Json文件,如果它不存在,则向它添加新数据
我已检查以下地址给出的代码:
1>
2>
但我没有找到如何实际创建Json文件并向其写入多个唯一的对象值(每个玩家的姓名和分数)。我从他们的密码中漏掉了什么吗
这提到了如何加载现有的json,但没有其他内容。首先,我必须说,我自己从未使用过Libgdx。但我想帮你一点忙。 我认为github上的这个应该对您有所帮助。
基本上,
Json
API允许您将整个对象写入Json
对象,然后将其解析为字符串。为此,请使用:
PlayerScore score = new PlayerScore("Player1", 1537443); // The Highscore of the Player1
Json json = new Json();
String score = json.toJson(score);
这应该是这样的:
{name: Player1, score: 1537443}
您可以使用包含换行符和制表符的prettyPrint()
,而不是toJson()
要将其写入文件,请使用:
FileHandle file = Gdx.files.local("scores.json");
file.writeString(score, true); // True means append, false means overwrite.
您还可以通过实现Json.Serializable
或使用writeValue
手动添加值来定制Json
阅读与此类似:
FileHandle file = Gdx.files.local("scores.json");
String scores = file.readString();
Json json = new Json();
PlayerScore score = json.fromJson(PlayerScore.class, scores);
如果您通过实现Json.Serializable
来使用自定义版本,那么您已经实现了read(Json-Json,JsonValue-jsonMap)
方法。如果您正确地实现了它,那么反序列化应该可以工作。如果您一直在手动添加值,则需要创建一个jsonFile=newjsonvalue(scores)
<代码>分数
是文件的字符串
。现在,您可以循环遍历此JsonValue
的子对象,或按名称获取其子对象
最后一件事:对于高分或类似的东西,也许Libgdx是更好的选择。你可以阅读如何使用它们
希望我能帮上忙。谢谢你……我会试试这段代码。关于首选项,我目前正在使用首选项,而且效果很好。但稍后我想添加制作在线记分板的功能,我想在服务器上使用Json文件。请记住,首选项
是使webapps数据持久化的唯一方法。因此,对于依赖于客户端的设置(声音等)等数据,它们是最佳选择。但我认为在服务器Json
上发送和存储数据是一个不错的选择。