解析 bean 类:

public class ResponseObj {    private String code;    private String toastMessage;    private T data;    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public String getToastMessage() {        return toastMessage;    }    public void setToastMessage(String toastMessage) {        this.toastMessage = toastMessage;    }    public T getData() {        return data;    }    public void setData(T data) {        this.data = data;    }}

T data  这是一个泛型对象,如果我们不传递泛型类,而是一个包含泛型的类,最后解析出来的还是LinkedTreeMap而不是你想要的bean类。

我们先看看平时如何使用Gson来解析json,就假设有个Test类吧。

Test  test  = gson.fromJson(json, Test.class);

这个方法的第二个参数是传一个Type,我们可以来看看什么是Type



都知道能理解成是一个类型的接口。

如何获取这个type呢,我在自己的程序中是通过反射获取到这个type。

protected Type clazz;public AbstractQueryCallbackErrorCode() {    ParameterizedType type = (ParameterizedType) this.getClass()            .getGenericSuperclass();    this.clazz =  type.getActualTypeArguments()[0];}
protected ParameterizedType type(final Class raw, final Type... args) {    return new ParameterizedType() {        public Type getRawType() {            return raw;        }        public Type[] getActualTypeArguments() {            return args;        }        public Type getOwnerType() {            return null;        }    };}

最终调用解析类,进行数据解析。

private AbsHttpResposeBaseCodeBean fromJson(String json, Type clazz) {    Gson gson = new Gson();    Type objectType = type(AbsHttpResposeBaseCodeBean.class, clazz);    return gson.fromJson(json, objectType);}

其实就是要注意传递泛型类型的问题。

更多相关文章

  1. Android(安卓)| activity之间传递列表,以listview显示
  2. android获取短信所有内容
  3. Android利用反射获取状态栏(StatusBar)高度
  4. Android(安卓)使用广播(BroadcastReceiver)传递数据
  5. Appium:Android(安卓)- 等待activity出现(wait_activity)
  6. Android(安卓)签名信息读取
  7. android获取手机屏幕的宽度及高度
  8. android studio 获取android app sha1
  9. android软件设置gps自动开启

随机推荐

  1. Android 中屏蔽 Home 键
  2. 列出sdcard里所有.mp3文件,并且可以点击
  3. [Android][MediaRecorder] Android(安卓)
  4. 【技术直通车】ArcGIS Runtime SDK for A
  5. ButterKnife初级用法
  6. java和Android文件下载断点续传和图片下
  7. android获取网络数据
  8. Android WiFi On/Off sequence diagram
  9. Android(安卓)DataBinding 快速入门
  10. Android版本更新【转】