当然是第二种好用,本人开发过 Android 应用软件和 Java 后台.以下只是个人看法
@
huclengyue json 本来就是一个对象,在 js 里可以直接用.在 Android,都不敢想象现在谁还去手写 json 解析对象?数据又不少,里面嵌了好几层对象,有的接口像订单详情字段特多,手写会崩溃的.早就用 GsonFormat 将接口结果进行自动解析,后台搞成全 string 的,我都要吐血了.
@
hyyou2010 至于第二种方法,说后台扔一个 null 值给客户端不好处理,我不这么认为.
楼层中有人说的好,还有一个问题,比如人家把个人资料里描述改成字符串,返回是这样{desc:"null"},用第一种方法,我觉得不好处理.这个是代表该字段没有值还是说"null",歧义很大.第二种的话,就简单了,该字段是{desc:null}或者根本没有返回,说明该字段没有值,如果是{desc:"null"},那说明这是用户设置的.总不可能把客户输入的自动删除掉吧?刚才我试了微信签名,可以单独设置 null.
对于后台返回的数据,是先通过 json 解析工具自动转成对象的.传 null 过来很正常,本来有的内部对象 /字段是 null,因为该对象 /字段本来就没有数据,在展示的时候,也会先验证.
比如是对象,验证是否为 null;如果是集合,还需验证集合大小大于 0,要不然,一堆空指针报错,因为同一个接口有的地方是有数据,有的没有.
列举的 3 个问题,这个跟 json 格式没有关系呀.
1,2 这种是交接和沟通问题,开发新接口,客户端需要把数据正常显示在 app 上,后台返回错误的格式 /数据也常见,叫后台重新发布,因为项目是采用统一格式返回的.比如{retCode:1,message:"xxx",result:{...}},改了的话很不好.如果是已发布的代码,后台还敢修改接口字段类型和名称,已上线版本容易出大问题的.一般这种是加版本号,而不是在原来版本修改.
3.的话,我也是承认的,加班疲惫时总会有出错的时候,做第一个也会的.