SpringBoot完美使用fastJson解析json数据
SpringBoot完美使用fastJson解析json数据(自动返回json数据)
springBoot框架自带集成jackson框架,返回对象自动转换成json数据格式,使用步骤如下
maven项目添加fastjsonjar包
<!-- 添加fastjson 依赖包. --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> </dependencies>
方法一:App集成WebMvcConfigurerAdapter并且实现configureMessageConverters方法
package com.pypua; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import javax.security.auth.message.callback.PrivateKeyCallback.Request; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.web.HttpMessageConverters; import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; /** * Hello world! *在这里我们使用@SpringBootApplication指定这是一个spring boot应用程序 */ @SpringBootApplication public class App extends WebMvcConfigurerAdapter { /** * 利用fastjson替换掉jackson,且解决中文乱码问题 */ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); List<MediaType> fastMediaTypes = new ArrayList<>(); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); converters.add(fastJsonHttpMessageConverter); } public static void main( String[] args ) { //在main方法中启动应用程序 SpringApplication.run(App.class,args); } }
方法二:在App.java方法中注入方法Bean
package com.pypua; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import javax.security.auth.message.callback.PrivateKeyCallback.Request; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.web.HttpMessageConverters; import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; /** * Hello world! *在这里我们使用@SpringBootApplication指定这是一个spring boot应用程序 */ @SpringBootApplication public class App { @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { // 1、需要先定义一个 convert 转换消息的对象; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据; FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); fastJsonConfig.setCharset(Charset.forName("UTF-8")); //3、在convert中添加配置信息. fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); } public static void main( String[] args ) { //在main方法中启动应用程序 SpringApplication.run(App.class,args); } }
个人建议推荐使用第一种方法,因为第二种注入方法bean的时候会出现中文乱码的问题
划船不用桨、杨帆不等风、一生全靠浪