提问人:Amit Kumar 提问时间:9/28/2023 最后编辑:Amit Kumar 更新时间:9/28/2023 访问量:44
一段时间后,ObjectMapper 将带有“is”前缀的布尔字段映射到没有“is”前缀的同名字段
ObjectMapper maps Boolean field with "is" prefix to same name field without "is" prefix after some time
问:
我在 API 的请求正文中有一个名为“isSafe”的布尔字段。此字段使用 ObjectMapper 映射到我的 Pojo 类。
如果我在请求中发送“安全”,那么它会失败,并且我收到此错误。
但是同样的请求在一段时间后开始通过。Unrecognized field \"safe\"
我的应用程序部署在云上,并且运行了多个 Pod。 在对应用程序进行任何部署/重启后,此请求将失败(这是预期的),但在 1-2 小时后,一个接一个的 Pod 开始给出成功响应。最终,所有请求都开始成功。
注意:我知道杰克逊与“is”前缀名称字段的冲突。但就我而言,请求在一段时间后开始成功。这很奇怪。
我的问题是,为什么最初在服务器重新启动映射器后会抛出错误,而一段时间后即使我传递了“安全”字段也不会抛出错误。
Pojo Class 字段(我使用 @Data 作为 getter 和 setter):
private Boolean isSafe;
ObjectMapper bean:
new ObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)
.registerModules(new JavaTimeModule(), new Jdk8Module());
初始分析:如果我在定义此字段的 Pojo 类中添加@JsonIgnoreProperties,那么它会按预期工作(忽略“安全”字段)。但如果没有这个,它的行为就会很奇怪。
答: 暂无答案
评论