简介

springboot可以将接收到的参数值自动转换成对象或相应类型的参数,当定义了Enum类型的参数时,传入的参数值又不在定义范围内时,springboot会报错,这有点不实用了。通常在这种情况我们可能期望得到一个null值的Enum参数而不是报错,那么应该如何处理呢?

解决方案

只需要在项目中增加一个Jackson相关的配置即可,具体代码如下

@Configuration
public class JacksonConfiguration {
    @Bean
    public Jackson2ObjectMapperBuilder objectMapperBuilder() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.featuresToEnable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL);
        // 如果需要,还可以在这里配置其他特性,例如:
        // builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        return builder;
    }
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐