springmvc默認是使用jackson作爲消息轉換器的實現,當我們想對一些類型做轉換的時候,有幾種方式
1.在默認消息轉換器沒有被重寫的情況下,使用jackson的註解(只有註解的字段會被轉換)
2.重寫默認的消息轉換器實現對Long類型的字段轉換爲String類型(全部統一轉換)
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new StringHttpMessageConverter());
converters.add(new ResourceHttpMessageConverter());
converters.add(new AllEncompassingFormHttpMessageConverter());
converters.add(new StringHttpMessageConverter());
converters.add(jackson2HttpMessageConverter());
}
/**
* long類型轉String(解決瀏覽器Long類型精度丟失問題)
*
* @return 值
*/
@Bean
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
// Long類型轉String類型
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
mapper.registerModule(simpleModule);
converter.setObjectMapper(mapper);
return converter;
}
}