【问题标题】:SpringMVC global setting for ignoring unknown properties during deserialization用于在反序列化期间忽略未知属性的 SpringMVC 全局设置
【发布时间】:2021-11-02 02:58:27
【问题描述】:

Spring Boot 默认设置“spring.jackson.deserialization.fail-on-unknown-properties=false”。我有一个在 Spring Boot 中运行良好的库,但在现有 SpringMVC 应用程序中使用时,它会抛出“无法识别的字段,未标记为可忽略”。我可以在配置或其他方式中设置 SpringMVC 的一些可比较的全局设置吗?

编辑:spring webmvc 版本 3.2.15.RELEASE

【问题讨论】:

  • 那是哪个 SpringMVC 版本?
  • 春季版 3.2.15.RELEASE

标签: spring spring-boot spring-mvc jackson deserialization


【解决方案1】:

您可以按照我在this 回答中提到的两种方法。如果我没记错的话,任何一个都可以为你工作。 (但如果你的 clinet 类没有无参数默认构造函数,方法 1 将不起作用)

【讨论】:

  • 不幸的是 Jackson2ObjectMapperBuilder 不在春季 3.2.15;直到 4.1.1 我认为。
  • 还没有,我尝试了自定义反序列化器的好主意,但它不起作用,因为我现在坚持使用 spring 3.2.15。明天我会看看那个版本是否有类似的方法。谢谢!
  • @bob 如果你能分享你的代码,那会很有帮助
  • 抱歉,我没有任何代码要分享。我将一个通常在 spring boot 中运行的库添加到我已经运行的 springmvc 应用程序中,它会引发该异常。我希望有一些设置可以让它忽略未知字段。
【解决方案2】:

您可以使用注释映射的类

@JsonIgnoreProperties(ignoreUnknown = true)

或者创建添加如下配置到 ObjectMapper 中:

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

【讨论】:

  • 是的,但我无权访问源代码
猜你喜欢
  • 1970-01-01
  • 2013-08-17
  • 2012-12-09
  • 2012-12-29
  • 2016-05-26
  • 2014-06-13
  • 1970-01-01
相关资源
最近更新 更多