处理gson解析时类型不匹配或者空值问题

如题所述

第1个回答  2022-06-18

通常我们会将请求结果封装成一个BaseResponse,比如这样

但是遇到开发不规范的后台,如果object为空他会返回给你""或者"null"这样一个空字符串,这时候我们用object类型类接收就会抛一个java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING 的异常

那么怎么动态的处理这种问题呢

接下来我们来测试一下这个东西起不起作用呢

User类

User{name='Coder', friends=User{name='庄长鹏', friends=null, relation='好朋友', family=null}, relation='自己', family=[User{name='李克亮', friends=null, relation='爸爸', family=null}]}

执行结果为
User{name='Coder', friends=null, relation='自己', family=[User{name='李克亮', friends=null, relation='爸爸', family=null}]}
嗯 friends虽然类型不匹配,但是并不影响其他字段的解析

执行的结果为
User{name='null', friends=User{name='庄长鹏', friends=null, relation='好朋友', family=null}, relation='自己', family=[User{name='李克亮', friends=null, relation='爸爸', family=null}]}
嗯 json字符串中的name字段虽然变成了{}对象,但是并不影响其他字段的解析

回头我们来看看

GsonTypeAdapterFactory是怎么处理的呢

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网