java – LibGDX:从json文件读取到ArrayList
发布时间:2020-12-14 05:34:27 所属栏目:Java 来源:网络整理
导读:我需要帮助读取json文件到ArrayList. 我有json文件: [ { "name": "Wall","symbol": "#",},{ "name": "Floor","symbol": ".",}] 我有一个班: public class Tile { public String name; public String symbol;} 我有另一个类与ArrayList: public class Data
我需要帮助读取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)您可以将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)); } 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |