1. 程式人生 > >SpringBoot更換json解析框架

SpringBoot更換json解析框架

  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來解析資料,第一種一般已經不用了,所以推薦使用第二種。