1
我想啓用以下傑克遜映射功能: MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
如何使用Spring application.properties定製Jackson ObjectMapper?
根據https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html:
可在application.properties
配置如下: spring.jackson.mapper.accept_case_insensitive_properties=true
但是:
@RestController
public class MyServlet {
@RequestMapping("/test")
public void test(@Valid TestReq req) {
}
}
public class TestReq {
@NotBlank
private String name;
}
用法:
localhost:8080/test?name=test //works
localhost:8080/test?Name=test //fails with 'name may not be blank'
因此,不考慮不區分大小寫的屬性。但爲什麼?
順便說一句:即使使用Jackson2ObjectMapperBuilderCustomizer
明確不起作用:
@Bean
public Jackson2ObjectMapperBuilderCustomizer initJackson() {
Jackson2ObjectMapperBuilderCustomizer c = new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder builder) {
builder.featuresToEnable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
}
};
return c;
}
彈簧引導1.5.3.RELEASE
你在哪裏創建ObjectMapper實例,在java類文件中還是在spring配置中? – Richard
它由'spring-boot'或'spring-mvc'自動創建,因此應該在初始化期間使用配置屬性。 – membersound
我認爲你需要改變你的標籤來添加spring-boot – Richard