本文记录SpringBoot学习中遇到的问题。
使用fastJson对出参做处理,会将String类型自动增加双引号字符串。若仅仅想返回String内容,可以在WebConfig里面增加转换器。
解决方案
如下,在json的前面增加string类型的解析器即可:
//使用阿里 FastJson 作为JSON MessageConverter
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//字符串转换
StringHttpMessageConverter strConverter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
converters.add(strConverter);
//阿里Json转换
FastJsonHttpMessageConverter jsonConverter = new FastJsonHttpMessageConverter();
FastJsonConfig config = new FastJsonConfig();
config.setSerializerFeatures(SerializerFeature.WriteMapNullValue,//保留空的字段
SerializerFeature.WriteNullStringAsEmpty,//String null -> ""
SerializerFeature.WriteNullNumberAsZero);//Number null -> 0
jsonConverter.setFastJsonConfig(config);
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
jsonConverter.setSupportedMediaTypes(fastMediaTypes);
converters.add(jsonConverter);
}