我正在将一个Android专用游戏移植到libgdx。世界和级别信息存储在json文件中。
我曾经使用getJSONArray(id)访问数组,如下所示:
public static WorldVO create(JSONObject worldObject) {
WorldVO worldVO = new WorldVO();
worldVO.id = worldObject.getInt("id");
worldVO.unlock = worldObject.getInt("stars_to_unlock");
worldObject.getChild("levels");
JSONArray levelJsonArray = worldObject.getJSONArray("levels");
int len = levelJsonArray.length();
worldVO.levelVOs = new LevelVO[len];
for (int i = 0; i < len; i++) {
worldVO.levelVOs[i] = LevelVO.create(levelJsonArray.getJSONObject(i));
}
...
工作正常,但我找不到循环通过&#34;级别的正确方法&#34; &#34; worldObect&#34;的孩子当我使用 JsonValue 而不是 JSONObject 时,libgdx中的Json。
访问整数字段不是问题,但JsonValue没有getJSONArray。知道怎么用吗?谢谢!
答案 0 :(得分:0)
基于此:http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/JsonValue.html 试试这个:
public static WorldVO create(JsonValue worldObject)
{
WorldVO worldVO = new WorldVO();
worldVO.id = worldObject.getInt("id");
worldVO.unlock = worldObject.getInt("stars_to_unlock");
JsonValue levels = worldObject.get("levels");
int len = levels.size;
worldVO.levelVOs = new LevelVO[len];
for (int i = 0; i < len; i++)
{
worldVO.levelVOs[i] = LevelVO.create(levels.get(i));
}