Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用libGDX写入Json_Java_Android_Json_Libgdx - Fatal编程技术网

Java 使用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。但我想帮你

我不熟悉Json和libGDX,但我已经创建了一个简单的游戏,我想将玩家姓名和他们的分数存储在Json文件中。有办法做到这一点吗?我想在
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
上发送和存储数据是一个不错的选择。