cari

Rumah  >  Soal Jawab  >  teks badan

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

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

巴扎黑巴扎黑2772 hari yang lalu758

membalas semua(8)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 17:32:57

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

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:32:57

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

    balas
    0
  • PHP中文网

    PHP中文网2017-04-17 17:32:57

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

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:32:57

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

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:32:57

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

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:32:57

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

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

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

    balas
    0
  • 高洛峰

    高洛峰2017-04-17 17:32:57

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

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:32:57

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

    balas
    0
  • Batalbalas