使用Gson解析json到任意类型的Bean

/**
 * http返回解析包
 * Created by caizhigui
 * 2016/11/30.
 */
public class PlugHttpRes<T> implements Serializable {

    static public int HTTP_DO_SUCCEED =0;  //操作成功
    static public int HTTP_DO_ERR_RELATION_MANAGER =1;   //操作失败,请联系管理员.
    static public int HTTP_DO_ERR_PARA_FORMAT =2;   //参数值格式有误.
    static public int HTTP_DO_ERR_RESOUCE =3;   //参数值格式有误.
    static public int HTTP_DO_ERR_AUTHORIZAITON =11;   //参数值格式有误.
    static public int HTTP_DO_ERR_COUSTOM =99;   //自定义异常消息



    int Code;//"异常编号0为正常,非0错误"
    String ErrorDesc; //"异常消息"
    T Result;//"返回结果"

    public PlugHttpRes() {
    }

    public PlugHttpRes(int code, String errorDesc, T result) {
        Code = code;
        ErrorDesc = errorDesc;
        Result = result;
    }

    public Type getResultClass()
    {
        Type type = new TypeToken<PlugHttpRes<T>>() {
        }.getType();
        return type;
    }

    public Type getResultClass2()
    {
        Type type = new TypeToken<PlugHttpRes<T>>() {
        }.getType();
        return type;
    }

    public int getCode() {
        return Code;
    }

    public void setCode(int code) {
        Code = code;
    }

    public String getErrorDesc() {
        return ErrorDesc;
    }

    public void setErrorDesc(String errorDesc) {
        ErrorDesc = errorDesc;
    }

    public T getResult() {
        return Result;
    }

    public void setResult(T result) {
        Result = result;
    }

    @Override
    public String toString() {
        Gson gson=new Gson();
        return PlugHttpRes.class.getSimpleName()+":"+gson.toJson(this);
    }

//    /**
//     * 泛型解包到实体变量或数组变量
//     * @param json
//     * @return
//     */
//    public  T unpackPlugResToBean(String json) {
//        T t =null;
//        Type type = new TypeToken<T>() {
//        }.getType();
//        PlugHttpRes<T> plugHttpRes = new Gson().fromJson(json, type);
//        if (plugHttpRes.getCode() == PlugHttpRes.HTTP_DO_SUCCEED){
//            t = plugHttpRes.getResult();
//            if (t!=null){
//            }
//        }else {
//            Log.i("Login","登录发生错误"+plugHttpRes.getCode());
//        }
//        return t;
//    }

}

===========调用例子=========

private EnvironmentalParameters unpackPlugResToBean(String json) {
    EnvironmentalParameters environmentalParameters =null;
    Type type = new TypeToken<PlugHttpRes<EnvironmentalParameters>>() {
    }.getType();
    PlugHttpRes<EnvironmentalParameters> pluginhttpRes = new Gson().fromJson(json, type);
    if (pluginhttpRes.getCode() == PlugHttpRes.HTTP_DO_SUCCEED){
        environmentalParameters = pluginhttpRes.getResult();
        if (environmentalParameters!=null){
            Log.i(TAG,"解包成功:"+environmentalParameters.WeChatID);
        }


    }else {
        Log.i("Login","登录发生错误"+pluginhttpRes.getCode());
    }
    return environmentalParameters;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牵手生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值