美文网首页
当Gson解析遇到java关键词

当Gson解析遇到java关键词

作者: 苍蝇的梦 | 来源:发表于2018-05-25 10:14 被阅读48次

    2018-05-24 遇到的一点小问题
    项目里和服务端约定的返回数据基本就三种
    { "code": 0,"msg": "success","data": {}}

    {"code": 0, "msg": "success","data": []}

    {"code": 0, "msg": "success"}
    code为0时才去处理data数据,code不为0时,按具体代码处理异常,整个项目都差不多。所有的接口都必须统一上传三个参数。
    不想在项目里复制太多代码,所以把网络请求简单整理了一下。
    这样网络请求时只需使用具体的解析类型就可以获取数据了,有多余的参数要上传就加上自定义的HashMap,有需要处理的异常就重写onError(xxx)方法就行。

    ToolsHttp.post(context, url, new HttpCallback<InfoMineAccount>() {
                @Override
                public void onSuccess( InfoMineAccount data) {
                  
                }
    });
    

    上面是第一种数据处理;第二种就是HttpCallback<List<InfoMineAccount>>();第三种专门弄个HttpCallback,把type设置为null就可以了。虽然不清楚这样有没问题,但是省了很多复制代码的时间。
    因为是使用的GsonConverter类里统一解析数据,所以遇到服务端把java关键词当成Json数据的key时就会比较麻烦了。比如这样的{"code": 0,"msg": "success", "data": {"default": {}}},当然这种问题网上一找很多解决办法,就是在你自定义的数据上注解@SerializedName("xxx")就可以了。

    @SerializedName("xxx")
    为什么网上一找很多解决办法,我还特地写一篇这个呢。因为今天改东西,看那句话,才隔了几个月就以为没用,给顺手删了,然后测试才发现出问题了。所以写一下加深记忆,顺便增加点简书字数。
    再加点字数,感谢四木推荐的jeasonlzy/okhttp-OkGo。因为项目的README.md里有`Fiddler抓包泛型的相关介绍,对项目还是有些帮助的。

    相关文章

      网友评论

          本文标题:当Gson解析遇到java关键词

          本文链接:https://www.haomeiwen.com/subject/xphyjftx.html