本章介紹
fastJson是阿里巴巴旗下的一個(gè)開源項(xiàng)目之一,顧名思義它專門用來做快速操作Json的序列化與反序列化的組件。它是目前json解析最快的開源組件沒有之一!在這之前jaskJson是命名為快速操作json的工具,而當(dāng)阿里巴巴的fastJson誕生后jaskjson就消聲匿跡了,不過目前很多項(xiàng)目還在使用。
本章目標(biāo)
? ? ? ? 將fastJson加入到SpringBoot項(xiàng)目內(nèi),配置json返回視圖使用fastJson解析。
一、配置SpringBoot對FastJson的支持
? ? ? ? 注意:上一章節(jié)我們已經(jīng)添加了fastJson的jar,本章我們主要看一下配置fastjson的返回視圖,配置代碼如圖一所示:

????????????????????????????????????????????????????????????????????????????圖一
添加完成依賴后我們把上一章的實(shí)體類、控制器、JPA復(fù)制到我們當(dāng)前項(xiàng)目下,我們就不重復(fù)講解如何創(chuàng)建這些簡單的實(shí)體類了。如下圖2所示:

????????????????????????????????????????????????????????????????????????????圖二
接下來創(chuàng)建一個(gè)FastJsonConfiguration配置信息類,添加@Configuration注解讓SpringBoot自動加載類內(nèi)的配置,有一點(diǎn)要注意我們繼承了WebMvcConfigurerAdapter這個(gè)類,這個(gè)類是SpringBoot內(nèi)部提供專門處理用戶自行添加的配置,包含了修改視圖的過濾還有其他很多的方法。
fastJson視圖過濾配置詳細(xì)內(nèi)容如下圖3所示:

????????????????????????????????????????????????????????????????????????????圖三
上述圖3 內(nèi)fastJson配置實(shí)體調(diào)用setSerializerFeatures方法可以配置多個(gè)過濾方式。
最后運(yùn)行項(xiàng)目
? ? ? ? 經(jīng)過上述的配置我們基本完成對了SpringBoot整合FastJson的內(nèi)容,我們接下來嘗試運(yùn)行下項(xiàng)目,如下圖4所示:

????????????????????????????????????????????????????????????????????????????圖四
可以看到我們的項(xiàng)目正常運(yùn)行了,,我們訪問之前編寫的查詢列表的請求,看是否給我返回了相應(yīng)的數(shù)據(jù),訪問地址:127.0.0.1:8080/user/list,接下來修改FastJsonConfiguration類內(nèi)的setSerializerFeatures方法,再添加一個(gè)配置WriteNullStringAsEmpty,我們再次重啟項(xiàng)目訪問用戶列表地址效果如何?修改配置如下圖5所示:

圖五
我們?yōu)?"的address字段設(shè)置了NULL,返回視圖如圖六所示:

????????????????????????????????????????????????????????????????????????????圖六
總結(jié)
上面我們本章的全部講解內(nèi)容,本章主要講解了SpringBoot項(xiàng)目如何將返回的消息從內(nèi)部的Json轉(zhuǎn)換變成fastJson轉(zhuǎn)換,如何添加fastJson的轉(zhuǎn)換器過濾配置SerializerFeature。因?yàn)锧RestControll注解的Controller本身返回值就是json字符串,也可以@Controller和@ResponseBody配合返回json,我們上述fastJson過濾器配置所有過程。