fastJson是阿里巴巴旗下的一個開源項目之一,顧名思義它專門用來作快速操做Json的序列化與反序列化的組件。它是目前json解析最快的開源組件沒有之一!在這以前jaskJson是命名爲快速操做json的工具,而當阿里巴巴的fastJson誕生後jaskjson就消聲匿跡了,不過目前不少項目還在使用。git
將fastJson加入到SpringBoot項目內,配置json返回視圖使用fastJson解析。spring
看過我前幾章的程序猿們都知道,咱們經過IntelliJ IDEA工具建立SpringBoot項目,咱們本章也不例外,具體建立步驟這裏就很少作解釋了,最終項目結構以下圖1所示:數據庫
能夠看到咱們事先導入了,Web、MySQL、JPA組件,咱們把上一章的application.yml配置文件複製到咱們的項目對應的目錄下,而且修改pom.xml添加Druid的支持。以下圖2所示:json
注意:圖2中的spring-boot-stater-tomcat依賴的scope屬性必定要註釋掉咱們才能在IntelliJ IDEA工具使用SpringBootApplication的形式運行項目!
完成上述配置後咱們接下來將fastJson的maven依賴也添加進咱們的pom.xml配置文件中。tomcat
跟咱們上一章很類似,咱們須要到maven倉庫複製對應的maven依賴xml配置到咱們項目的pom.xml中。訪問倉庫地址:mvnrepository.com/artifact/co…,這裏咱們使用fastJson最新版本,咱們當訪問fastJson的列表界面時能夠看到阿里巴巴2017年就發佈了不少個版本,證實阿里巴巴一直在維護而且升級版本,因此咱們能夠大膽的放心使用。添加效果圖以下圖3所示:app
添加完成依賴後咱們把上一章的實體類、控制器、JPA複製到咱們當前項目下,咱們就不重複講解如何建立這些簡單的實體類了。以下圖4所示:框架
咱們接下來建立一個FastJsonConfiguration配置信息類,添加@Configuration註解讓SpringBoot自動加載類內的配置,有一點要注意咱們繼承了WebMvcConfigurerAdapter這個類,這個類是SpringBoot內部提供專門處理用戶自行添加的配置,裏面不單單包含了修改視圖的過濾還有其餘不少的方法,包括咱們後面章節要講到的攔截器,過濾器,Cors配置等。
fastJson視圖過濾配置詳細內容以下圖5所示:maven
上述圖5內fastJson配置實體調用setSerializerFeatures方法能夠配置多個過濾方式,下面咱們來介紹下經常使用的SerializerFeatures配置。spring-boot
WriteNullListAsEmpty :List字段若是爲null,輸出爲[],而非null
WriteNullStringAsEmpty : 字符類型字段若是爲null,輸出爲"",而非null
DisableCircularReferenceDetect :消除對同一對象循環引用的問題,默認爲false(若是不配置有可能會進入死循環)
WriteNullBooleanAsFalse:Boolean字段若是爲null,輸出爲false,而非null
WriteMapNullValue:是否輸出值爲null的字段,默認爲false。工具
通過上述的配置咱們基本完成對了SpringBoot整合FastJson的內容,咱們接下來嘗試運行下項目,以下圖6所示:
能夠看到咱們的項目正常運行了,咱們訪問以前編寫的查詢列表的請求,看是否給我返回了相應的數據,訪問地址:127.0.0.1:8080/user/list,以下圖7所示:
能夠看到咱們獲得了咱們想要的結果,那麼接下來咱們該如何去測試fastJson是否已經生效了呢?
咱們上述的配置中添加一個SerializerFeatures(WriteMapNullValue)這個配置的含義就是輸入爲NULL值的字段,咱們嘗試修改數據庫中的name爲NULL看看效果如何,以下圖8所示:
咱們能夠看到咱們將以前的name爲test的name字段設置了NULL,咱們請求列表接口仍是能夠獲得該字段的可是字段返回是沒有值得。
接下來修改FastJsonConfiguration類內的setSerializerFeatures方法,再添加一個配置WriteNullStringAsEmpty,咱們再次重啓項目訪問用戶列表地址效果如何?修改配置以下圖9所示:
配置修改完成後,重啓咱們的項目程序,訪問用戶列表請求地址,獲得的返回結果以下圖10所示:
能夠看到上述圖10內的紅色標記處,name的值從NULL變成了"",那麼證實咱們的fastJson消息的轉換配置完美生效了。若是你的效果不是上圖10所示,請檢查FastJsonConfiguration配置以及maven依賴問題。
以上即是咱們本章的所有講解內容,本章主要講解了SpringBoot項目如何將返回的消息從內部的Json轉換變成fastJson轉換,如何添加fastJson的轉換器過濾配置SerializerFeature。由於@ResultControll註解的Controller自己返回值就是json字符串,咱們上述講解經過兩次修改fastJson過濾器配置的方式見證了fastJson的神奇效果。
本上內容已經上傳到碼雲:
SpringBoot配套源碼地址:gitee.com/hengboy/spr…
SpringCloud配套源碼地址:gitee.com/hengboy/spr…
SpringBoot相關係列文章請訪問:目錄:SpringBoot學習目錄
QueryDSL相關係列文章請訪問:QueryDSL通用查詢框架學習目錄
SpringDataJPA相關係列文章請訪問:目錄:SpringDataJPA學習目錄
SpringBoot相關文章請訪問:目錄:SpringBoot學習目錄,感謝閱讀!
歡迎加入QQ技術交流羣,共同進步。