Gson解析时对于不确定泛型的处理

今天写一个解析时后台返回的对象不确定,不能每个对象都去写个type
  1. Type type = new TypeToken<List<Info>>() {}.getType();  
  2.         Object fromJson2 = gson.fromJson(readContext, type);  
  3.         List<Info> list = (List<Info>) fromJson2;  
去解析,因为有好多个不一样的对象,于是写了个 Object fromJson2 = gson.fromJson(jsonobject, class);然后把object对象强转给对应的对象,结果怎么运行都不行,报
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to appuccino.simplyscan.Objects.Folder错误

解决方案:
查看了一下LinkedTreeMap,可通过key来获取value的map。与TreeMap不同的是,这类使用迭代顺序插入顺序。比较顺序只作为一个优化的有效的插入和去除。它实现了Android 4.1的TreeMap类。所以在获得object对象的时候Gson会把不同的泛型按key和value形式存储起来,使用时只需要对LinkedTreeMap进行遍历即可
LinkedTreeMap tm = (LinkedTreeMap)fromJson2;
	Iterator it = tm.keySet().iterator();  
	while (it.hasNext()) {  
	String key = (String) it.next();
	String value = (String)tm.get(key);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值