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; } }