Gson解析,利用TypeToken

2017-04-01  本文已影响203人  43d60efa37c7

一、不写bean类,直接解析为Map利用键值对来取值。

如果json很复杂,层级很多,使用创建bean类的方式要写一个很大的bean,甚至bean类里的某一个List里的item的变量名都不一样,可以把json解析为一个Map,Map的key是String,value不一定,可以是String、List、Map,使用的时候把Object强转为对应的String、List、Map(注:如果是List,泛型是Map<String,Object>,Map是<String,Map<String, Object>>)

Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> map = gson.fromJson(json, type);

二 、json格式固定,有固定的值,比如errorcode,message等等,其他的数据放在data中,可以定义这样一个类

public class BaseNetDataBean<T> {
    private String errorno;
    private String message;
    private T data;
    ......
}

解析的时候

//这里的T需要替换一下,定义一个需要的实体bean类就可以了
Type type  = new TypeToken<BaseNetDataBean<T>>() {}.getType();
上一篇下一篇

猜你喜欢

热点阅读