Java 使用Libgdx编写和读取JSON
与Libgdx中的Java 使用Libgdx编写和读取JSON,java,android,json,libgdx,Java,Android,Json,Libgdx,与Libgdx中的JsonBeans非常混淆。正在尝试将游戏进度保存并加载到本地存储。正在初始化文件: file=Gdx.files.local(FILENAME); 阅读json: if (file.exists()) { JsonReader jsonReader = new JsonReader(); JsonValue jv = jsonReader.parse(file.reader()); levels = jv.getInt(LEV
JsonBeans
非常混淆。正在尝试将游戏进度保存并加载到本地存储。正在初始化文件:
file=Gdx.files.local(FILENAME);
阅读json:
if (file.exists()) {
JsonReader jsonReader = new JsonReader();
JsonValue jv = jsonReader.parse(file.reader());
levels = jv.getInt(LEVELS, 1);
}
应用程序在levels=jv.getInt(levels,1)时死于NullPointerException
代码>(jv
为null
)
但写入也不起作用,输出文件为空:
Json json=new Json(JsonWriter.OutputType.json);
json.setWriter(file.writer(true));
json.writeObjectStart();
json.writeValue(LEVELS, levels);
json.writeObjectEnd();
有什么建议吗?提前感谢。请尝试Gdx.files.internal而不是Gdx.files.local,因为您可能没有写入和读取本地存储的权限
对于以管理员身份运行的桌面(我认为已经足够了)
对于android,将写/读权限添加到android清单。该死,Libgdx wiki上的教程非常缺乏信息。
首先,我从来没有提到需要将Writer
设置为Json
实例的内容,其次,在阅读之后,我感觉所有在光盘上录制Json的工作都是由Json
类完成的,但事实并非如此。您需要自己完成这项工作:
file.writeString(json.prettyPrint(progress), false);
在那之后,一切都起了作用。谢谢大家。应该没问题。您的文件是否在某处定义了类型?比如在你的领域?不明白你的意思:)