SpringBoot更換json解析框架
阿新 • • 發佈:2018-11-08
SpringBoot預設使用了Jackson解析框架解析json資料,也就是預設支援json資料。如果想使用fastjson需要在pom新增依賴
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency>
然後有兩種方式設定:
1、需要繼承WebMvcConfigurerAdapter(這個類已經過時了)然後重寫它的configureMessageConverters方法
@SpringBootApplication public class Fastjson extends WebMvcConfigurerAdapter{ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); /* * 1、需要先定義一個 convert 轉換訊息的物件; * 2、新增fastJson 的配置資訊,比如:是否要格式化返回的json資料;* 3、在convert中新增配置資訊. * 4、將convert新增到converters當中. * */ // 1、需要先定義一個 convert 轉換訊息的物件; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //2、新增fastJson 的配置資訊,比如:是否要格式化返回的json資料; FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat ); //3、在convert中新增配置資訊. fastConverter.setFastJsonConfig(fastJsonConfig); //4、將convert新增到converters當中. converters.add(fastConverter); }
}
2、使用@Bean注入
/** * 在這裡我們使用 @Bean注入 fastJsonHttpMessageConvert * @return */ @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { // 1、需要先定義一個 convert 轉換訊息的物件; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //2、新增fastJson 的配置資訊,比如:是否要格式化返回的json資料; FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //3、在convert中新增配置資訊. fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }
這兩種方法都可以實現使用fastjson來解析資料,第一種一般已經不用了,所以推薦使用第二種。