我需要帮助将 json 文件读取到 ArrayList。
我有 json 文件:
[
{
"name": "Wall",
"symbol": "#",
},
{
"name": "Floor",
"symbol": ".",
}
]
我有一个类:
public class Tile {
public String name;
public String symbol;
}
我还有另一个 ArrayList 类:
public class Data {
public static ArrayList<Tile> tilesData;
public static void loadData() {
tilesData = new ArrayList<Tile>();
Json json = new Json();
json.fromJson(Tile.class, Gdx.files.internal("data/tiles.json"));
}
}
我需要用 json 文件中的数据填充这个 ArrayList,但我遇到了一些问题。我猜这条线
json.fromJson(Tile.class, Gdx.files.internal("data/tiles.json"));
错了。
当我尝试运行它时有
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error reading file: data/tiles.json
Caused by: com.badlogic.gdx.utils.SerializationException: Unable to convert value to required type: [
{
name: Wall,
symbol: #
},
{
name: Floor,
symbol: .
}
我已经阅读了关于 json 文件的 libgdx 文章,但我发现它不清楚...我不明白如何填充数组。请帮我解决这个问题!
最佳答案
你的 json 文件有 ArrayList<Tile>
存储在其中并且您正在尝试将其读取为 Tile
.
有两种方法可以解决这个问题。
1) 您可以将图 block 集合封装在另一个类中以简化序列化。
2) 读作 ArrayList
并稍后转换类型。
ArrayList<JsonValue> list = json.fromJson(ArrayList.class,
Gdx.files.internal("data/tiles.json"));
for (JsonValue v : list) {
tilesData.add(json.readValue(Tile.class, v));
}
希望这对您有所帮助。
关于java - LibGDX:从 json 文件读取到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078410/