Spring Boot使用FastJson解析JSON数据的方法
个人使用比较习惯的json框架是fastjson,所以springboot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析呢?
1.引入fastjson依赖库:
<!--添加fastjson解析JSON数据--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.16</version> </dependency>
2.配置fastjson
这里要说下很重要的话,官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持4.2以下的版本,一个是FastJsonHttpMessageConverter4支持4.2以上的版本,具体有什么区别暂时没有深入研究。这里也就是说:低版本的就不支持了,所以这里最低要求就是1.2.10+
方式一:
(1)启动类继承WebMvcConfigurerAdapter
(2)覆盖方法configureMessageConverters
具体代码:
@SpringBootApplication//申明让springboot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan publicclassApplicationextendsWebMvcConfigurerAdapter{ @Override publicvoidconfigureMessageConverters(List<HttpMessageConverter<?>>converters){ super.configureMessageConverters(converters); //初始化转换器 FastJsonHttpMessageConverterfastConvert=newFastJsonHttpMessageConverter(); //初始化一个转换器配置 FastJsonConfigfastJsonConfig=newFastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //将配置设置给转换器并添加到HttpMessageConverter转换器列表中 fastConvert.setFastJsonConfig(fastJsonConfig); converters.add(fastConvert); } publicstaticvoidmain(String[]args){ SpringApplication.run(Application.class,args); } }
方式二:
在配置类或启动类中,注入Bean:HttpMessageConverters
/** *Bean配置管理 *Createdbysurpass.wei@gmail.comon2017/2/21. */ @Configuration publicclassBeanConfig{ /*注入Bean:HttpMessageConverters,以支持fastjson*/ @Bean publicHttpMessageConvertersfastJsonHttpMessageConverters(){ FastJsonHttpMessageConverterfastConvert=newFastJsonHttpMessageConverter(); FastJsonConfigfastJsonConfig=newFastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); fastConvert.setFastJsonConfig(fastJsonConfig); returnnewHttpMessageConverters((HttpMessageConverter<?>)fastConvert); } }
配置完成后,在实体类中使用@JSONField(serialize=false),是不是此字段就不返回了,如果是的话,那么恭喜你配置成功了,其中JSONField的包路径是:com.alibaba.fastjson.annotation.JSONField
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。