Retrofit 在 JSON 反序列化的时候提示 UnrecognizedPropertyException 异常
2023-06-13 09:18:51 时间
提示的异常信息如下:
java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "new_user" (class com.ossez.wechat.common.model.res.UserSummaryResponse$UserData), not marked as ignorable (5 known properties: "cancel_user", "new_users", "ref_date", "user_source", "cumulate_user"])
at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 63] (through reference chain: com.ossez.wechat.common.model.res.UserSummaryResponse["list"]->java.util.ArrayList[0]->com.ossez.wechat.common.model.res.UserSummaryResponse$UserData["new_user"])
at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:93)
问题和解决
这是因为 retrofit 在反序列化的时候,如果没有找到对应的对象名,将会报错。
关键是在下面这句话:
.addConverterFactory(JacksonConverterFactory.create())
需要做的也非常简单,只需要将上面的 Jackson 的 mapper 对象映射过来就可以了。
在 ObjectMapper 对象中,我们可以定义是不是忽略没有找到的字段。
就是下面这句话:
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
这样我们就不会因为没有找到字段而出现异常的问题了。
https://www.ossez.com/t/retrofit-json-unrecognizedpropertyexception/14399
相关文章
- java map转json字符_Map转JSON字符串
- RuntimeException异常
- 记录下最近开发中fastjson的坑-fastjson出现json解析异常
- 人群异常聚集识别监测系统
- Mybatis版本升级导致OffsetDateTime入参解析异常问题
- 什么是异常处理,Python常见异常类型(入门必读)
- Mysql使用函数json_extract处理Json类型数据的方法实例
- MySQL支持JSON格式:优势何在?(mysql的json格式)
- MySQL转JSON:实现高效数据转换(mysql转json)
- Linux系统异常重启调查报告(linux异常重启)
- Linux 优雅解析JSON文件(linux解析json)
- 使用Oracle解析JSON数据(oracle解析json)
- 《柳叶刀》:人工智能可识别九类急性脑CT异常
- Oracle对于JSON的研究揭开未知的问号(json问号oracle)
- 破解JSON数据,Oracle数据库助力转换(json转oracle)
- 破解Oracle数据库之路从JSON到Oracle的导入(json导入oracle)
- 精简操作以JSON方式修改Oracle数据库中的数据(json修改oracle)
- Oracle 数据库如何利用JSON格式保存信息(json oracle)
- 的处理解决Oracle数据库预定义异常的方法(oracle中预定义异常)
- Oracle数据库系统异常捕获机制研究(oracle中捕获异常)
- 处理Oracle数据库中异常处理机制实战(oracle中例外)
- Redis中存储JSON的集合方式(redis集合存json)
- Redis实现高效存储JSON集合(redis集合json)
- 强大的Redis存储JSON的功能(redis里面存json)
- 多个jquery.datatable共存,checkbox全选异常的快速解决方法