78. Spring Boot完美使用FastJson解析JSON數據【從零開始學Spring Boot】

個人使用比較習慣的json框架是fastjson,所以spring boot默認的json使用起來就很陌生了,所以很自然我就想我能不能使用fastjson進行json解析呢?

       引入fastjson依賴庫:

  <dependencies>

        <dependency>

           <groupId>com.alibaba</groupId>

           <artifactId>fastjson</artifactId>

           <version>1.2.15</version>

    </dependency>

       這裏要說下很重要的話,官方文檔說的1.2.10以後,會有兩個方法支持HttpMessageconvert,一個是FastJsonHttpMessageConverter,支持4.2以下的版本,一個是FastJsonHttpMessageConverter4支持4.2以上的版本,具體有什麼區別暫時沒有深入研究。這裏也就是說:低版本的就不支持了,所以這裏最低要求就是1.2.10+。

       配置fastjon

支持兩種方法:

第一種方法就是:

(1)啓動類繼承extends WebMvcConfigurerAdapter

(2)覆蓋方法configureMessageConverters

具體代碼如下:

 

/**

 *

 * @author Angel --守護天使

 * @version v.0.1

 * @date 2016729下午7:06:11

 */

@SpringBootApplication

public class ApiCoreApp  extends WebMvcConfigurerAdapter {

   

    @Override

    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

        super.configureMessageConverters(converters);

      

        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

 

        FastJsonConfig fastJsonConfig = new FastJsonConfig();

        fastJsonConfig.setSerializerFeatures(

                SerializerFeature.PrettyFormat

        );

        fastConverter.setFastJsonConfig(fastJsonConfig);

      

        converters.add(fastConverter);

    }

}

 

第二種方法:

(1)在App.java啓動類中,注入Bean : HttpMessageConverters

具體代碼如下:

package com.kfit;

 

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.converter.HttpMessageConverter;

 

import com.alibaba.fastjson.serializer.SerializerFeature;

import com.alibaba.fastjson.support.config.FastJsonConfig;

import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

 

/**

 *

 * @author Angel --守護天使

 * @version v.0.1

 * @date 2016729下午7:06:11

 */

@SpringBootApplication

public class ApiCoreApp {

 

    @Bean

    public HttpMessageConverters fastJsonHttpMessageConverters() {

       FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

       FastJsonConfig fastJsonConfig = new FastJsonConfig();

       fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

       fastConverter.setFastJsonConfig(fastJsonConfig);

       HttpMessageConverter<?> converter = fastConverter;

       return new HttpMessageConverters(converter);

    }

 

    public static void main(String[] args) {

       SpringApplication.run(ApiCoreApp.class, args);

    }

}

 

       那麼這時候在實體類中使用@JSONField(serialize=false),是不是此字段就不返回了,如果是的話,那麼恭喜你配置成功了,其中JSONField的包路徑是:com.alibaba.fastjson.annotation.JSONField。

 

【Spring Boot 系列博客】

76. Spring Boot完美解決(406)Could not find acceptable representation原因及解決方法 

 

75. Spring Boot 定製URL匹配規則【從零開始學Spring Boot】 

 

71.mybatis 如何獲取插入的id【從零開始學Spring Boot】 

 

67. @Transactional的類注入失敗【從零開始學Spring Boot】 

 

63.JPA/Hibernate/Spring Data概念【從零開始學Spring Boot】 

 

61. mybatic insert異常:BindingException: Parameter 'name' not found【從零開始學Spring B】 

 

 

60. Spring Boot寫後感【從零開始學Spring Boot】 

 

 

59. Spring Boot Validator校驗【從零開始學Spring Boot】 

 

58. Spring Boot國際化(i18n)【從零開始學Spring Boot】 

 

57. Spring 自定義properties升級篇【從零開始學Spring Boot】 

 

56. spring boot中使用@Async實現異步調用【從零開始學Spring Boot】 

 

55. spring boot 服務配置和部署【從零開始學Spring Boot】 

 

54. spring boot日誌升級篇—logback【從零開始學Spring Boot】

 

52. spring boot日誌升級篇—log4j多環境不同日誌級別的控制【從零開始學Spring Boot】 

 

51. spring boot屬性文件之多環境配置【從零開始學Spring Boot】

 

50. Spring Boot日誌升級篇—log4j【從零開始學Spring Boot】

 

49. spring boot日誌升級篇—理論【從零開始學Spring Boot】

 

48. spring boot單元測試restfull API【從零開始學Spring Boot】

 

47. Spring Boot發送郵件【從零開始學Spring Boot】

 

46. Spring Boot中使用AOP統一處理Web請求日誌

 

45. Spring Boot MyBatis連接Mysql數據庫【從零開始學Spring Boot】

 

44. Spring Boot日誌記錄SLF4J【從零開始學Spring Boot】

 

43. Spring Boot動態數據源(多數據源自動切換)【從零開始學Spring Boot】

 

42. Spring Boot多數據源【從零開始學Spring Boot】

 

41. Spring Boot 使用Java代碼創建Bean並註冊到Spring中【從零開始學Spring Boot】

 

40. springboot + devtools(熱部署)【從零開始學Spring Boot】 

 

39.4 Spring Boot Shiro權限管理【從零開始學Spring Boot】

 

39.3 Spring Boot Shiro權限管理【從零開始學Spring Boot】

 

39.2. Spring Boot Shiro權限管理【從零開始學Spring Boot】

 

39.1 Spring Boot Shiro權限管理【從零開始學Spring Boot】

 

38 Spring Boot分佈式Session狀態保存Redis【從零開始學Spring Boot】 

 

37 Spring Boot集成EHCache實現緩存機制【從零開始學Spring Boot】 

 

36 Spring Boot Cache理論篇【從零開始學Spring Boot】

 

35 Spring Boot集成Redis實現緩存機制【從零開始學Spring Boot】 

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章