NiceLeeのBlog 用爱发电 bilibili~

SpringBoot 踩坑记录(六)- 返回String带双引号问题

2018-12-14
nIceLee

阅读:


本文记录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);
}

内容
隐藏