我需要帮助将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文章,但我发现它不清楚......我不明白如何填充数组。请帮帮我这个案子!
答案 0 :(得分:9)
您的json文件中存储了ArrayList<Tile>
,并且您尝试将其作为Tile
阅读。
有两种方法可以解决这个问题。
1)您可以将tile集合封装在另一个类中以简化序列化。
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));
}
希望这有帮助。
答案 1 :(得分:8)
Tanmay Patil的答案是对的,但你可以用以下方式保存循环:
ArrayList<Tile> board = json.fromJson(ArrayList.class, Tile.class, Gdx.files.internal("data/tiles.json"));
答案 2 :(得分:0)
.model
2年了,libgdx已经改变了一点,所以设法让它工作。现在我们必须添加 require(VennDiagram)
AA <- c("hi","foo", "bar","yep","woo","hoo")
BB <- c("baa","yep", "woo","yes")
CC <- c("yes","foo","hi","woo", "huh")
x <- list(AA=AA , BB=BB , CC=CC)
v0 <- venn.diagram( x, filename=NULL)
grid.draw(v0)
overlaps <- calculate.overlap(x)
#overlaps <- rev(overlaps)
for (i in 1:length(overlaps)){
v0[[i+6]]$label <- paste(overlaps[[i]], collapse = "\n") # labels start at position 7 in the list for Venn's with 3 circles
}
grid.newpage()
grid.draw(v0)
。我被困住直到我弄明白了。