我正在努力做到这一点,以便我的 Spring rest 应用程序可以同时处理 xml 和 json 响应,但似乎添加 Jaxb 消息转换器破坏了我的 json 映射。
@Bean
public MappingJackson2HttpMessageConverter jsonConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(String.class, new StringSerializer());
ObjectMapper mapper = new ObjectMapper()
.registerModule(simpleModule);
converter.setObjectMapper(mapper);
return converter;
}
@Bean
public Jaxb2RootElementHttpMessageConverter jaxbConverter() {
return new Jaxb2RootElementHttpMessageConverter();
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(jsonConverter());
converters.add(jaxbConverter());
}
如果我在那里注释掉第二种和第三种方法,一切都会重新开始工作(当然除了 xml 映射!)。但是,有了这些,我就搞砸了,比如在 中序列化List<String>
结果[APPLEORANGEBANANA]
,其中 apple、orange 和banana 在列表中是单独的字符串。
如果我直接使用jackson对象映射器映射到json,就没有这个问题,但是使用@ResponseBody
注解自动序列化到json我就有这个问题了。
有人有想法么?