废话不多说,直接上代码:
需要转换的为list的json代码:
[{
"id":104,"mid":16,"up_count":103,"count_date":"2016-08-15","name":"荼丸","fans":18006,"contributes":2,"last_contribute_id":3905532,"last_contribute_name":"【2016拜年祭单品】站娘Collection(上)","last_contribute_time":"2016-02-22 08:00:00"
},{"id":105,"mid":18,"up_count":104,"count_date":"2016-08-15","name":"暁の赤月","fans":468,"contributes":1,"last_contribute_id":654,"last_contribute_name":"【NDS】节奏天国LOLI与猴子附真人对比版","last_contribute_time":"2009-10-15 15:54:47"},{"id":106,"mid":20,"up_count":105,"count_date":"2016-08-15","name":"恶魔晓月曲","fans":2849,"contributes":1,"last_contribute_id":39,"last_contribute_name":"坚持下去吧","last_contribute_time":"2009-07-13 07:35:51"},{"id":107,"mid":24,"up_count":106,"count_date":"2016-08-15","name":"不思議","fans":2252,"contributes":11,"last_contribute_id":824467,"last_contribute_name":"『逆転裁判5』Soundtrack192k","last_contribute_time":"2013-11-06 20:51:23"},{"id":108,"mid":32,"up_count":107,"count_date":"2016-08-15","name":"一条黑黑","fans":422,"contributes":1,"last_contribute_id":743417,"last_contribute_name":"企鹅页游黑科技——英雄之刃","last_contribute_time":"2013-09-02 01:10:35"},{"id":109,"mid":37,"up_count":108,"count_date":"2016-08-15","name":"折射","fans":2458,"contributes":4,"last_contribute_id":4954037,"last_contribute_name":"[PV向?]少女与战车——OverPanzer","last_contribute_time":"2016-06-13 05:28:01"
}]
采取方案:建需要填充至list中的实体bean,注意,最好将json对应的实体中的具有时间类型的字段改为String类型,譬如:last_contribute_time 字段的属性在bean中设为String,不然在转换时会抛出转换失败的异常
转换的工具代码:
public static <T> List<T> fromJson2Array(String json,Class<T> clazz) throws Exception{
List<T> list = new ArrayList<T>();
JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for(final JsonElement elem:array){
list.add(new Gson().fromJson(elem,clazz));
}
return list;
}
调用代码:
List<BumFansUserInfo> fansList = JsonUtils.fromJson2Array(json, BumFansUserInfo.class);