個人使用比較習慣的json框架是fastjson,所以spring boot默認的json使用起來就很陌生了,所以很自然我就想我能不能使用fastjson進行json解析呢?
1.引入fastjson依賴庫:
1
2
3
4
5
6
|
<!--添加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
具體代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@SpringBootApplication // 申明讓spring boot自動給程序進行必要的配置,等價于以默認屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan public class Application extends WebMvcConfigurerAdapter{ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super .configureMessageConverters(converters); // 初始化轉換器 FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter(); // 初始化一個轉換器配置 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // 將配置設置給轉換器并添加到HttpMessageConverter轉換器列表中 fastConvert.setFastJsonConfig(fastJsonConfig); converters.add(fastConvert); } public static void main(String[] args) { SpringApplication.run(Application. class , args); } } |
方式二:
在配置類或啟動類中,注入Bean : HttpMessageConverters
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/** * Bean配置管理 * Created by [email protected] on 2017/2/21. */ @Configuration public class BeanConfig { /*注入Bean : HttpMessageConverters,以支持fastjson*/ @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); fastConvert.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters((HttpMessageConverter<?>) fastConvert); } } |
配置完成后,在實體類中使用@JSONField(serialize=false),是不是此字段就不返回了,如果是的話,那么恭喜你配置成功了,其中JSONField的包路徑是:com.alibaba.fastjson.annotation.JSONField
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.jianshu.com/p/aabd308ac963