1.创建 BigDecimalToStringValueFilter 类
public class BigDecimalToStringValueFilter implements ValueFilter {
@Override
public Object process(Object object, String name, Object value) {
if(value instanceof BigDecimal) {
return ((BigDecimal) value).toPlainString();
}
return value;
}
}
2. 在 WebMvcConfig创建消息转换器HttpMessageConverters bean对象
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//添加自定义转换器
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializeFilters(new BigDecimalToStringValueFilter());
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullNumberAsZero,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteMapNullValue,
// 禁止循环引用
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteBigDecimalAsPlain);
//处理编码问题
List<MediaType> fastMediaTypes = new ArrayList();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastConverter);
}