Gson利用泛型将Http请求返回的Json字符串快速解析模板

来源:互联网 发布:阿里云 pptp 无法连接 编辑:程序博客网 时间:2024/06/05 09:29
第一种:返回类型为单个JsonObject形式:
<pre name="code" class="java">import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import com.google.gson.Gson;public class CommonJson<T> implements Serializable {    /**     *     */    private static final long serialVersionUID = -3440061414071692254L;    /**     * 是否成功     */    private Boolean success;    /**     * 数据     */    private T data;    public Boolean getSuccess() {        return success;    }    public void setSuccess(Boolean success) {        this.success = success;    }    public T getData() {        return data;    }    public void setData(T data) {        this.data = data;    }public static CommonJson fromJson(String json, Class clazz) {        Gson gson = new Gson();        Type objectType = type(CommonJson.class, clazz);        return gson.fromJson(json, objectType);    }    public String toJson(Class<T> clazz) {        Gson gson = new Gson();        Type objectType = type(CommonJson.class, clazz);        return gson.toJson(this, objectType);    }    static 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;            }        };    }}

第二种:返回字符串为JsonArray格式:

<pre name="code" class="java">import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.List;import com.google.gson.Gson;public class CommonJson4List<T> implements Serializable {    /**     *     */    private static final long serialVersionUID = -369558847578246550L;    /**     * 是否成功     */    private Boolean success;    /**     * 数据     */    private List<T> data;    public Boolean getSuccess() {        return success;    }    public void setSuccess(Boolean success) {        this.success = success;    }    public List<T> getData() {        return data;    }    public void setData(List<T> data) {        this.data = data;    }    public static CommonJson4List fromJson(String json, Class clazz) {        Gson gson = new Gson();        Type objectType = type(CommonJson4List.class, clazz);        return gson.fromJson(json, objectType);    }    public String toJson(Class<T> clazz) {        Gson gson = new Gson();        Type objectType = type(CommonJson4List.class, clazz);        return gson.toJson(this, objectType);    }    static 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;            }        };    }}



0 0
原创粉丝点击