如何应对接口数据异常

如何应对接口数据异常

  • 1 已知字段名一致,格式变化
  • 2 字段不存在或者Entity未定义字段

1 已知字段名一致,格式变化

参考1:https://www.jianshu.com/p/d6bd6bd5fce3
如何应对接口数据异常_第1张图片
采取方法:自定义Gson响应体变换器和响应变换工厂,在请求错误时抛出异常并保存错误码和错误信息。

参考2:https://mp.weixin.qq.com/s?__biz=MzIxNzU1Nzk3OQ==&mid=2247486762&idx=1&sn=35f2a4d53dc36470994c8b24ca1474f6&chksm=97f6b39ea0813a88e4cf0b9b39cad5ef34ff2cdf82a879f2f57b8ec3ece0522eb524dbf32d31&scene=38#wechat_redirect
原理:实现 JsonDeserializer 接口重写 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) 方法,这里进行解析处理,针对特殊字段特殊处理。

2 字段不存在或者Entity未定义字段

参考:https://blog.csdn.net/yulungggg/article/details/60882451
1.Entity定义的字段多于请求获得的字段
采取的方法:使用FastJson,使用com.alibaba.fastjson.JSONObject
结果:不存在的字段会得到null值
2.请求获得的字段多于Entity定义的字段
使用org.codehaus.jettison.jsn.jsonobject
https://blog.csdn.net/jariwsz/article/details/23619163
结果:跳过未定义的字段

你可能感兴趣的:(json解析,Android,技能专题)