1. 程式人生 > >springboot使用fastjson中文亂碼解決方法 【轉載】

springboot使用fastjson中文亂碼解決方法 【轉載】

以前使用fastjson替換jackson時,沒有直接在頁面列印過json,都是js使用沒有出現亂碼,偶然 打印出來出現了中文亂碼

之前使用的配置方式

@Configuration
public class FastJsonConf {

    @Bean
    public HttpMessageConverters fastjsonHttpMessageConverter() {
        //訊息轉換物件
        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
        //新增fastjson的配置資訊,是否格式化返回json
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //轉換器中新增配置資訊
        fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter = fastJsonHttpMessageConverter;
        return new HttpMessageConverters(converter);
    }
}

找到一個博主的文章解決了亂碼:http://www.cnblogs.com/xql4j/p/6729524.html

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
    /**
     * 利用fastjson替換掉jackson,且解決中文亂碼問題
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //處理中文亂碼問題
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        converters.add(fastConverter);
    }
}