gson 对象转json(gson typetoken封装泛型)

gson 对象转json,原文标题:使用Gson将json转为实体,如何泛型避免重复的封装实体。前言:在实际开发中,可能会调用第三方接口,现在大多数

gson 对象转json,原文标题:使用Gson将json转为实体,如何泛型避免重复的封装实体。

前言:在实际开发中,可能会调用第三方接口,现在大多数时候,都是返回的json格式的数据。如图

gson 对象转json(gson typetoken封装泛型)

json数据

但是我们在编码时,拿到要直接拿这个json字符串处理吗?显然是不可能的,那得多麻烦。由此也就出现了将json转为实体。实体就是对象。这样我们操作起来就方便多了。

在我转实体又碰见一个翻来覆去重复封装实体的问题,如图:

gson 对象转json(gson typetoken封装泛型)

广告主

gson 对象转json(gson typetoken封装泛型)

广告组

上面有些字段是固定的如(code、message),正常我们封装如下

gson 对象转json(gson typetoken封装泛型)

广告主

gson 对象转json(gson typetoken封装泛型)

广告组

其中AdvertiserReport和AdgroupReport就代表的我上图中的data。这么封装是可以的,没什么不妥的。

gson 对象转json(gson typetoken封装泛型)

gson转换

但我我个人认为这样太麻烦了,我完全可以将message、code这样的字段拿出去。这里可能有人会想到继承。但这是不可取的。为什么呢。因为data,当data为多种类型时,不还是要根据data创建相应的返回bean吗。再说的详细点(比如data分为广告主、广告组,那在对返回json封装时,是不是还得根据广告主创建一个bean、根据广告组创建一个bean,这样一样没解决问题,还多出了继承bean),这里我想到了泛型解决。

gson 对象转json(gson typetoken封装泛型)

泛型封装

这样当我想返回广告主时,我就把广告主的bean传递过来,想返回广告组,我就把广告组的bean传递过来。

gson 对象转json(gson typetoken封装泛型)

泛型返回封装

是不是就解决了我上面的问题,我只需要封装好data中的json就可以了,与data平齐的字段完全不需要关心,因为BasicsReponse中已经封装好了。这样是不是就减少了创建一层bean的问题,而起一旦与data平齐有字段变化,只需要修改BasicsReponse,如果按最开始的思路,就要AdvertiserReponse和AdReponse都要修改一遍。

总结:

  1. 封装API要注意一些不必要类的封装(如我上面提到的AdvertiserReponse,AdReponse,完全是多于的,只会增加你的代码量,而起后期维护也很麻烦)。
  2. 将一些相同的字段封装在一个类,其他继承就好了。
  3. 一定要注意不要因为一个改动就要修改整个项目代码的问题(如我上面提到的AdvertiserReponse,AdReponse,如果返回字段增加了一个ID,那就得挨个找reposne的类添加上这个字段)。
本文《gson 对象转json(gson typetoken封装泛型)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。

随机文章

站长导航
搜素引擎算法
关键词排名优化
GEO培训
SEO小小课堂网
站长导航
友情链接交换
搜素引擎算法

百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:怀揣梦想的闭眼听风,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/979780.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注