使用Libgdx编写和读取JSON

时间:2016-08-09 13:28:46

标签: 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(LEVELS, 1);
}

应用已在NullPointerException levels = jv.getInt(LEVELS, 1); jv时死亡,nullJson json=new Json(JsonWriter.OutputType.json); json.setWriter(file.writer(true)); json.writeObjectStart(); json.writeValue(LEVELS, levels); json.writeObjectEnd();

但写作也不起作用,输出文件为空:

ID  |Year    |City      |Population 
--- |------- |------    |----------
1   | 2016   | Chennai  | 1200000
2   | 2016   | Salem    | 120000
3   | 2015   | Chennai  | 1100000
4   | 2015   | Salem    | 200000

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试使用Gdx.files.internal而不是Gdx.files.local,因为您可能没有权限写入本地存储并从本地存储读取。

以管理员身份运行桌面(我认为足够了)

为android添加对android清单的写/读权限。

答案 1 :(得分:0)

Goddamn,Libgdx wiki的教程非常缺乏信息。 首先,从未提及将Writer设置为Json实例所需的内容,其次,在阅读之后,感觉仍然是在光盘上录制json的所有工作都是由Json类完成的,但它不是。你需要自己做这件事:

file.writeString(json.prettyPrint(progress), false);

之后一切顺利。谢谢大家。