我检索一个JSON字符串从互联网;像大多数JSON一样,我看到它包含用下划线分隔的长键。从本质上讲,我的目标是将JSON反序列化为java对象,但我没有在java代码中使用下划线。
例如,我可能有一个用户类的firstName字段在驼峰情况下,同时我需要以某种方式告诉杰克逊映射first_name键从JSON到firstName类字段。这可能吗?
class User{
protected String firstName;
protected String getFirstName(){return firstName;}
}
注释所有的模型类在我看来是一个过度和肯尼的答案不适合我https://stackoverflow.com/a/43271115/4437153。系列化的结果仍然是驼峰情况。
我意识到我的弹簧配置有问题,所以我必须从另一个方面解决这个问题。希望有人觉得它有用,但如果我做了一些违反spring规则的事情,请告诉我。
Spring MVC 5.2.5和Jackson 2.11.2的解决方案
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(objectMapper);
converters.add(converter);
}
}