json转换bean

json转换成bean其实不是android的问题,是java的问题。

就我用过的方法来说,json转换成bean会有2中方法:

  1. 通过JSONObject和JSONArray来读取json中的数据,然后新建相应对象并放入其中。也就是手动挡创建对象。
  2. 通过工具类将对象自动创建成相应的对象。例如gson。

用第三方库的时候,在开始用的时候可能会遇到一些解析问题,比如自己定义的域和gson中的域不匹配等问题。所以上手时会稍微有点麻烦,但是了解库的用法之后就非常方便了,不用手动去做转换。下面说说用第三方库设计时遇到的几个问题


json对象和程序中要用的对象不一致问题。为什么会出现这个问题?第三方库转换json时会要求目标对象的命名和类型必须和json保持一直。同时服务端是别人写的,咱没法要求别人将字段写得和客户端要求的一模一样。有时,开发端客户端可能是基于已有的接口进行的,所以他们不会根据你的需求来改变太多。这一类原因简单说就是我有代码洁癖,不容忍代码命名乱七八糟。另一类问题就是,不想因为服务端的修改而对代码做大量改动。所以,就会需要做个adapter来将json生成的对象转换成客户端需要使用的对象。


好吧,第二个问题就是,要在json生成对象中保持多少原有域。我最开始的做法是根据客户端的页面确定客户端的数据结构,然后在根据这个数据结构写json生成对象的数据结构。这样做的优点是,很多当时不需要的数据都会被忽略。缺点是,如果后来想要用什么数据结构的时候,需要再修改json生成对象的数据结构。在加上我们的服务器端不给返回json的数据结构,这样我们就需要自己从json中找出返回的数据结构。每次去找json结果都很麻烦,与其保持一份json格式的文档,不如将json格式写入代码中。也就是说在做json生成对象的数据结构时,要将json中的各个域都写在生成对象中。这样就可以减少去查json结构的次数,感觉比较方便。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值