`

185.Spring Boot使用FastJson解析JSON数据:中文乱码

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

关注spring boot微信公众号,第一时间了解最新的Spring Boot动态,当前已经更新到:Spring Boot葵花宝典:初现江湖 、Spring Boot葵花宝典:初出茅庐

 

需求缘起:

       在整理《Spring Boot完美使用FastJson解析JSON数据》章节代码的时候,发现在使用FastJson的时候,中文乱码了,很奇怪,比很久还很久之前怎么没有出现中文乱码嘛?可能见鬼了吧,好了,不管是不是鬼,既然碰到了,就得处理。对于这个乱码还是很好处理的。

 

一、Spring Boot接入FastJson的方式回顾

       在之前的代码,我们已经介绍过了,如何在Spring Boot中接入FastJson,这里不详细介绍,如果没有记忆的,可以翻看之前的文章,这里只简单的说明下。

       接入FastJson有两种常用的方式:

其一:继承 WebMvcConfigurerAdapter覆写configureMessageConverters,定义FastJsonHttpMessageConverter对象,然后进行基本的设置,最后添加到List<HttpMessageConverter<?>>中。

其二:定义返回值为HttpMessageConvertersbean,在方法中同样定义FastJsonHttpMessageConverter对象,进行基本的设置,最后使用new HttpMessageConverters(FastJsonHttpMessageConverter) 做为方法的返回值。

 

二、Spring Boot 中文乱码的产生

       上面的两种方式,都需要使用到FastJsonHttpMessageConverter进行配置,这里中文乱码的原因,我们没有配置响应的MediaTypeUTF-8编码,只需要设置下即可。

 

三、Spring Boot 中文乱码的解决

       既然知道是少了配置,那么重要的是FastJson支持配置MediaType嘛,很高兴的告诉你,是支持的,这里提供方式二的源码如下:

 

@Bean
	public HttpMessageConverters fastJsonHttpMessageConverters() {
		// 1、需要先定义一个 convert 转换消息的对象;
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
		
		//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
		
		//2-1 处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
		
		//3、在convert中添加配置信息.
		fastConverter.setFastJsonConfig(fastJsonConfig);
		
		HttpMessageConverter<?> converter = fastConverter;
		return new HttpMessageConverters(converter);
	}
		

         

         这里解决乱码核心的部分是:

//2-1 处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);

 

————  微信公众号 ————

提供Spring Boot资讯、技术文章,具体关注方式,搜索springboot或者扫描以下二维码即可关注:

 

分享到:
评论

相关推荐

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `...

    com.alibaba.fastjson json解析工具包

    `com.alibaba.fastjson`是阿里巴巴开发的一个高性能的Java JSON库,被广泛应用于各种JSON处理场景,如数据序列化、反序列化、JSON字符串解析等。它以其高效、易用和全面的功能,深受Java开发者喜爱。本篇文章将深入...

    fastjson-1.2.83.jar下载

    fastjson-1.2.83.jar下载,fastjson是阿里巴巴的开源JSON解析库,可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也支持从JSON字符串反序列化到JavaBean。fastjson采用全新的JSON解析算法,运行速度极快...

    Alibaba Fastjson Jar包.zip

    1. 性能优秀:Fastjson的设计目标就是追求极致的性能,它的解析和序列化速度在同类JSON库中表现出色,尤其适合大数据量的处理。 2. 简单易用:Fastjson提供了简单直观的API,使得开发者可以轻松地进行JSON和Java...

    java FASTJSON 解析复杂JSON实例源码

    在这个实例中,我们将深入探讨如何使用Fastjson来解析复杂的JSON数据,并通过`JSONTest`这个示例代码来加深理解。 首先,让我们了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...

    fastjson解析json的jar

    4. **流式解析**:对于大数据量的JSON,Fastjson提供了流式解析API,可以按需读取JSON数据,避免一次性加载整个JSON字符串到内存中。 三、使用示例 1. **基本序列化与反序列化** ```java import ...

    Spring Boot使用FastJson解析JSON数据的方法

    在Spring Boot中实现JSON数据解析是一项常见的需求,而FastJson是一个广泛使用的Java库,可以快速实现JSON的处理。本文将详细介绍如何在Spring Boot项目中使用FastJson来解析JSON数据。 首先,关于FastJson库的版本...

    SpringBoot中使用FastJson解析Json数据示例代码

    本示例将探讨如何在Spring Boot项目中集成并使用FastJson来解析JSON数据。 首先,我们需要在项目的`pom.xml`文件中添加FastJson的依赖。Spring Boot本身并未内置FastJson,所以需要手动引入: ```xml &lt;groupId&gt;...

    com.alibaba.fastjson.JSONObject(JAR包)

    com.alibaba.fastjson.JSONObject(JAR包)下载 ,jar包含了json的转换和使用

    Android FastJSON小示例

    本文将详细介绍如何在Android Studio中使用FastJSON进行JSON解析和生成。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于语言的文本格式,...

    com.alibaba.fastjson,很方便的包,比较新的包1.2.79

    - `Fastjson`允许用户通过JSONPath表达式进行JSON数据的筛选和映射,类似XPath在XML中的作用,这在数据提取和处理中非常实用。 6. **性能优化** - 阿里巴巴团队对`Fastjson`进行了大量的性能优化,包括编译时代码...

    fastjson解析json.rar

    这个压缩包“fastjson解析json.rar”显然包含了使用Fastjson进行JSON解析的相关资源,包括fastjson的库文件、示例代码以及可能的数据模型类。下面将详细介绍Fastjson的使用方法以及压缩包中的关键文件。 首先,`...

    com.alibaba/fastjson/1.2.4 fastjson

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson”&gt;jackson) 强大(支持普通JDK类...

    FastJson解析Json数据源码-旧版

    在Java开发中,FastJson是阿里巴巴提供的一款性能极佳的JSON库,它广泛应用于数据解析与序列化。本文将深入探讨FastJson解析Json数据的源码,帮助开发者理解其内部工作机制,提升对JSON处理的效率。 FastJson的核心...

    com.alibaba.fastjson.JSONObject(JAR包V1.2.73)

    网上都说fastjson很方便,很多教程说如何使用但是却没有jar包,这个版本是2020年目前最新的fastjson-1.2.73

    fastjson-1.2.66_fastjson-1.2.66.jar_Fastjson_

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它在Java世界中被广泛使用,为开发者提供了快速、方便地处理JSON数据的能力。Fastjson 1.2.66是该库的一个稳定版本,其核心功能包括JSON字符串与Java对象之间的转换,...

    fastjson-1.2.41.jar 非常好用的JSON转换依赖包

    JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址 2.FastJson的特点: 1.FastJson数度快,无论序列化和反...

    com.alibaba.fastjson.JSONObject.rar

    《深入解析阿里巴巴Fastjson之JSONObject》 Fastjson是阿里巴巴开源的一款高效、功能强大的JSON库,广泛应用于...通过熟练掌握JSONObject的使用,开发者可以更高效地实现JSON数据的解析、生成和转换,提升开发效率。

    FastJson.java

    com.alibaba.fastjson.JSON读写json

    springboot实现FastJson解析json数据的方法

    在Spring Boot中实现FastJson解析JSON数据的方法主要涉及以下几个知识点: 1. FastJson简介: FastJson是由阿里巴巴开源的一款Java语言编写的高性能的JSON处理器。它可以方便快速地将Java对象转换成JSON字符串,也...

Global site tag (gtag.js) - Google Analytics