android端,如何防止服务器json数据变化导致的异常,比如忽然多一个或者少一个字段,字符串类型变成一个对象类型等等?
巴扎黑
巴扎黑 2017-04-17 17:30:57
0
8
761

android端,如何防止服务器json数据变化导致的异常,比如忽然多一个或者少一个字段,字符串类型变成一个对象类型等等?

巴扎黑
巴扎黑

membalas semua(8)
刘奇

这个的按照接口文档来吧,随意更改这个是没法处理的。要更改必须的同时改吧。

左手右手慢动作

这个应该和服务端说好,不应爱轻易变的。如果一定要变,可以用gson建实体类的方式解析,这样增加的字段不会对程序有影响,要改也好改。数据解析也可以写两个方法,一个是解析不变的字段,一个是可能会改变的,这样即使改变了也不会影响正常运行,只是无法得到改变的字段

洪涛

我们只对异常做了处理,服务器返回异常,把根布局GONE掉,然后给个提示。正式环境不应该出现json格式变化这种很容易引发崩溃的问题。当然如果你们确实会有这种情况,在initData的时候加一个方法,逐个判空。没想到什么很精妙的方法...

大家讲道理

用Gson吧,即使多一个或者少一个字段也不会报错,最多字段为null而已。在布局上面多做非空判断就行!一般来说后台字段变更是必须通知前段的

巴扎黑

一般情况下把可能出现的所有字段都写到bean里面,然后都给个初始值。
如果字段的类型不确定,直接用Object和List<Object>就可以,到时候判断一下类型。
我还遇到过更夸张的,List里面的元素都有不同类型,当时我用的是List<?>

Peter_Zhu

向你的老板举报,同事乱TM改后台。

——解决这种问题,很没意义,这意味着写额外的代码去处理一些人为的蠢事。

这种事情应该是在团队沟通时解决的。该用沟通解决的事情,就不要用技术去解决,有如头痛医脚。

小葫芦

1、找到问题的根源,是服务端随意更改还是说当初给的对象字段没有说清楚
2、这是涉及服务端的契约性,需要确定;如果服务端违反契约性,你直接找你的leader,让他去跟服务端方面协调

左手右手慢动作

和后端沟通清楚,什么接口返回什么字段+类型,要变的话记得通知

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan