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

  • 相关阅读:
    P1456 Monkey King
    P3377 【模板】左偏树(可并堆)
    P1074 靶形数独
    P1120 小木棍
    P5490 【模板】扫描线
    糖糖别胡说,我真的不是签到题目
    最长公共子序列
    最长上升子序列
    数的三次方根
    地、颜色、魔法(dfs)
  • 原文地址:https://www.cnblogs.com/leestar54/p/4287111.html
Copyright © 2011-2022 走看看