我要求使用包含下划线的键接收JSON,甚至忽略单词中的大小写。对于例如Device_control_API,device_control_API,Device_Control_API,device_control_aPI等都应映射到同一属性。
现在我知道我可以使用@JsonSetter创建多个setter方法,并且可以使用所有组合,但我认为这不会很好。
我看到其他问题建议使用mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)
对于ObjectMapper对象忽略大小写,但我不能这样做,因为我使用spring-boot并希望我的REST API以POJO对象的形式获取有效负载。
是否有任何注释或某种方法可以这样做
请帮助!!!
答案 0 :(得分:2)
我认为您不能使用MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
作为注释。从here
Jackson开/关功能:MapperFeature
杰克逊定义了一组per-mapper配置,它只能是 在使用ObjectMapper之前定义 - 意味着这些设置可以 不得根据要求即时更改。他们配置 基本的POJO内省细节,以及由此产生的构建对象 (序列化程序,反序列化程序,相关)是高度缓存的。如果你需要 不同的设置,你必须使用单独的ObjectMapper 实例强>
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
是其中一个配置。
但也许自定义反序列化类可以帮助你。 Stackoverflow上有很多教程和问题。
我发现了一些:
答案 1 :(得分:1)
还有此属性:
spring.jackson.mapper.accept_case_insensitive_properties=true