zoukankan      html  css  js  c++  java
  • Gson解析POJO类中的泛型参数

    在开发Android与API交互的时候,使用Json格式传输,遇到了这样一个情况,返回数据格式POJO类如下:

    public class ApiResult<T> {
        private int ret;
        private String msg;
        private T data;
    
        public int getRet() {
            return ret;
        }
    
        public void setRet(int ret) {
            this.ret = ret;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    
    }

    其中data参数是根据不同的Api返回的不同的数据,这时候就需要用gson来解析泛型。

    之前想到解析集合数组的时候是这样调用的

     gson.fromJson(str, new TypeToken<ArrayList<MyObject>>(){}.getType());

    所以照葫芦画瓢

     gson.fromJson(str, new TypeToken<ApiResult<MyObject>>(){}.getType());

    就实现了!

    原理就是TypeToken使用反射实现了运行时检测类型。

    具体可看源码以及文档

    http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

    https://code.google.com/p/google-gson/source/browse/trunk/gson/src/main/java/com/google/gson/reflect/TypeToken.java

  • 相关阅读:
    四则运算(Android)版
    返回二维数组最大联通子数组的和
    第二阶段每日总结08
    第二阶段每日总结07
    第十三周进度条
    第二阶段每日总结06
    第二阶段每日总结05
    找水王02
    第二阶段每日总结04
    浪潮之巅阅读笔记01
  • 原文地址:https://www.cnblogs.com/leestar54/p/4287111.html
Copyright © 2011-2022 走看看