博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot使用fastjson中文乱码解决方法 【转载】
阅读量:4629 次
发布时间:2019-06-09

本文共 3843 字,大约阅读时间需要 12 分钟。

以前使用fastjson替换jackson时,没有直接在页面打印过json,都是js使用没有出现乱码,偶然 打印出来出现了中文乱码

一:之前使用的配置方式,该方式只是使FastJsonHTTPMessageConverter优先级更高,并没有替换Jackson

@Configurationpublic 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

该种方式完全替换了Jackson

@Configurationpublic class WebMvcConfig extends WebMvcConfigurerAdapter {     /**     * 利用fastjson替换掉jackson,且解决中文乱码问题     * @param converters     */    @Override    public void configureMessageConverters(List
> converters) { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //处理中文乱码问题 List
fastMediaTypes = new ArrayList<>(); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(fastMediaTypes); fastConverter.setFastJsonConfig(fastJsonConfig); converters.add(fastConverter); }}

在Springboot 2.0.x以上,使用的是spring5.x版本,该版本移除了WebMvcConfigurerAdapter类,所以上面第二种方式不再使用,如果你的需求是完全替换掉Jackson,应该做新的实现:

常用重写接口:

/** 解决跨域问题 **/public void addCorsMappings(CorsRegistry registry) ;/** 添加拦截器 **/void addInterceptors(InterceptorRegistry registry);/** 这里配置视图解析器 **/void configureViewResolvers(ViewResolverRegistry registry);/** 配置内容裁决的一些选项 **/void configureContentNegotiation(ContentNegotiationConfigurer configurer);/** 视图跳转控制器 **/void addViewControllers(ViewControllerRegistry registry);/** 静态资源处理 **/void addResourceHandlers(ResourceHandlerRegistry registry);/** 默认静态资源处理器 **/void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);

方式一:

@Configurationpublic class MyWebMvcConfigurerAdapter implements WebMvcConfigurer {    //WebMvcConfigurer接口空实现    /**     * 完全覆盖Jackson     * @param converters     */    @Override    public void configureMessageConverters(List
> converters) { FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); List
mediaTypes = Lists.newArrayList(); mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter
converter = fastJsonHttpMessageConverter; converters.add(converter); }}

方式二:

@Configurationclass WebMvcConf extends WebMvcConfigurationSupport {    @Override    public void configureMessageConverters(List
> converters) { FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); List
mediaTypes = Lists.newArrayList(); mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter
converter = fastJsonHttpMessageConverter; converters.add(converter); }}

推荐使用第二种。

转载于:https://www.cnblogs.com/mzc1997/p/10260024.html

你可能感兴趣的文章
笔记一:python安装和执行
查看>>
关于字符串的分割问题
查看>>
Tornado 类与类组合降低耦合
查看>>
2009 Competition Highlights by ICPC Live
查看>>
ssh远程操作服务器
查看>>
树莓派Android Things物联网开发:创建一个Things项目
查看>>
GIT使用方法
查看>>
第三阶段 10_JavaWeb基础_
查看>>
裁员浪潮,互联网人该何去何从?
查看>>
Python Day 01
查看>>
Android5.0之CoordinatorLayout的使用
查看>>
U盘安装Ubuntu14.4时遇到分区问题记录
查看>>
servlet工作原理解析
查看>>
api工程IOS学习:在IOS开发中使用GoogleMaps SDK
查看>>
函数功能MATLAB
查看>>
Bzoj1123 Blockade
查看>>
Python之Mysql及SQLAlchemy操作总结
查看>>
数据库搜索与索引
查看>>
python3 面向对象(一)
查看>>
配件商城项目总结
查看>>