gpt4 book ai didi

java - 在 Spring Boot Controller 中反序列化枚举忽略大小写

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:54 29 4
gpt4 key购买 nike

我有 Spring Boot 端点,它以枚举作为查询参数:

@GetMapping("/example")
public List<Example> getByEnum(@RequestParam(name = "exampleEnum", required = false) ExampleEnum exampleEnum) {
// code
}

和枚举类:

public enum ExampleEnum {
FIRST,
SECOND,
}

如果我将大写枚举值传递给端点,它可以很好地反序列化,但会抛出小写错误:

java.lang.IllegalArgumentException: No enum constant 

如何反序列化 Spring Boot Rest 端点中忽略大小写的枚举?

这个问题不重复,因为它与查询参数反序列化有关。

最佳答案

编辑:以下答案不正确。您必须定义一个自定义 PropertyEditor 并将其注册到 Spring @InitBinder 中,我对此进行了解释 in this post .感谢@Dave 在评论中指出这一点。


Spring Boot 2.0 使用 Jackson 2.9,它有 ACCEPT_CASE_INSENSITIVE_ENUMS特征。您应该可以通过设置

来启用它
spring.jackson.mapper.ACCEPT_CASE_INSENSITIVE_ENUMS = true 

属性根据 docs, Appendix A .

关于java - 在 Spring Boot Controller 中反序列化枚举忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231233/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com