【发布时间】:2016-03-31 15:22:36
【问题描述】:
这就是我构建 Gson 的方式:Gson gson = new GsonBuilder().create();
这就是我从 Json 创建对象的方式:
JsonObject obj = gson.fromJson(line, JsonObject.class); //JsonObject allows us to retrieve information by name
Class<? extends Tile> resultClass = (Class<? extends Tile>) Class.forName(obj.get("className").getAsString()); //Get the class of the tile we are currently processing
newTile = resultClass.cast(gson.fromJson(line, resultClass)); //Cast the new tile to the correct class
我已经调试了这段代码,它似乎工作正常(返回一个与 json 值相同的对象)。但是,当我尝试访问对象的超类中的空数组(未在 json 中列出)时,该数组为“null”。数组是这样初始化的:
private ArrayList<Entity> elements = new ArrayList<Entity>();
所以每次正常创建对象时,都会初始化数组,但是用Gson创建时,数组为null。
Gson 不会初始化空数组吗?我是否必须在 Json 中包含空数组才能对其进行初始化?
【问题讨论】:
标签: java arrays json arraylist gson