日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第五章:配置使用FastJson返回Json视图

發(fā)布時(shí)間:2023/11/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五章:配置使用FastJson返回Json视图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

fastJson是阿里巴巴旗下的一個(gè)開(kāi)源項(xiàng)目之一,顧名思義它專(zhuān)門(mén)用來(lái)做快速操作Json的序列化與反序列化的組件。它是目前json解析最快的開(kāi)源組件沒(méi)有之一!在這之前jaskJson是命名為快速操作json的工具,而當(dāng)阿里巴巴的fastJson誕生后jaskjson就消聲匿跡了,不過(guò)目前很多項(xiàng)目還在使用。

本章目標(biāo)

將fastJson加入到SpringBoot項(xiàng)目?jī)?nèi),配置json返回視圖使用fastJson解析。

創(chuàng)建SpringBoot項(xiàng)目

看過(guò)我前幾章的程序猿們都知道,我們通過(guò)IntelliJ IDEA工具創(chuàng)建SpringBoot項(xiàng)目,我們本章也不例外,具體創(chuàng)建步驟這里就不多做解釋了,最終項(xiàng)目結(jié)構(gòu)如下圖1所示:


圖1

可以看到我們事先導(dǎo)入了,Web、MySQL、JPA組件,我們把上一章的application.yml配置文件復(fù)制到我們的項(xiàng)目對(duì)應(yīng)的目錄下,并且修改pom.xml添加Druid的支持。如下圖2所示:


圖2

注意:圖2中的spring-boot-stater-tomcat依賴(lài)的scope屬性一定要注釋掉我們才能在IntelliJ IDEA工具使用SpringBootApplication的形式運(yùn)行項(xiàng)目!
完成上述配置后我們接下來(lái)將fastJson的maven依賴(lài)也添加進(jìn)我們的pom.xml配置文件中。

添加依賴(lài)

跟我們上一章很相似,我們需要到maven倉(cāng)庫(kù)復(fù)制對(duì)應(yīng)的maven依賴(lài)xml配置到我們項(xiàng)目的pom.xml中。訪問(wèn)倉(cāng)庫(kù)地址:mvnrepository.com/artifact/co…,這里我們使用fastJson最新版本,我們當(dāng)訪問(wèn)fastJson的列表界面時(shí)可以看到阿里巴巴2017年就發(fā)布了很多個(gè)版本,證明阿里巴巴一直在維護(hù)并且升級(jí)版本,所以我們可以大膽的放心使用。添加效果圖如下圖3所示:


圖3

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


圖4

我們接下來(lái)創(chuàng)建一個(gè)FastJsonConfiguration配置信息類(lèi),添加@Configuration注解讓SpringBoot自動(dòng)加載類(lèi)內(nèi)的配置,有一點(diǎn)要注意我們繼承了WebMvcConfigurerAdapter這個(gè)類(lèi),這個(gè)類(lèi)是SpringBoot內(nèi)部提供專(zhuān)門(mén)處理用戶(hù)自行添加的配置,里面不僅僅包含了修改視圖的過(guò)濾還有其他很多的方法,包括我們后面章節(jié)要講到的攔截器,過(guò)濾器,Cors配置等。
fastJson視圖過(guò)濾配置詳細(xì)內(nèi)容如下圖5所示:


圖5

上述圖5內(nèi)fastJson配置實(shí)體調(diào)用setSerializerFeatures方法可以配置多個(gè)過(guò)濾方式,下面我們來(lái)介紹下常用的SerializerFeatures配置。

FastJson SerializerFeatures

WriteNullListAsEmpty :List字段如果為null,輸出為[],而非null
WriteNullStringAsEmpty : 字符類(lèi)型字段如果為null,輸出為"",而非null
DisableCircularReferenceDetect :消除對(duì)同一對(duì)象循環(huán)引用的問(wèn)題,默認(rèn)為false(如果不配置有可能會(huì)進(jìn)入死循環(huán))
WriteNullBooleanAsFalse:Boolean字段如果為null,輸出為false,而非null
WriteMapNullValue:是否輸出值為null的字段,默認(rèn)為false。

項(xiàng)目初嘗試運(yùn)行

經(jīng)過(guò)上述的配置我們基本完成對(duì)了SpringBoot整合FastJson的內(nèi)容,我們接下來(lái)嘗試運(yùn)行下項(xiàng)目,如下圖6所示:


圖6

可以看到我們的項(xiàng)目正常運(yùn)行了,我們?cè)L問(wèn)之前編寫(xiě)的查詢(xún)列表的請(qǐng)求,看是否給我返回了相應(yīng)的數(shù)據(jù),訪問(wèn)地址:127.0.0.1:8080/user/list,如下圖7所示:


圖7

可以看到我們得到了我們想要的結(jié)果,那么接下來(lái)我們?cè)撊绾稳y(cè)試fastJson是否已經(jīng)生效了呢?

我們上述的配置中添加一個(gè)SerializerFeatures(WriteMapNullValue)這個(gè)配置的含義就是輸入為NULL值的字段,我們嘗試修改數(shù)據(jù)庫(kù)中的name為NULL看看效果如何,如下圖8所示:


圖8

我們可以看到我們將之前的name為test的name字段設(shè)置了NULL,我們請(qǐng)求列表接口還是可以得到該字段的但是字段返回是沒(méi)有值得。
接下來(lái)修改FastJsonConfiguration類(lèi)內(nèi)的setSerializerFeatures方法,再添加一個(gè)配置WriteNullStringAsEmpty,我們?cè)俅沃貑㈨?xiàng)目訪問(wèn)用戶(hù)列表地址效果如何?修改配置如下圖9所示:


圖9

配置修改完成后,重啟我們的項(xiàng)目程序,訪問(wèn)用戶(hù)列表請(qǐng)求地址,得到的返回結(jié)果如下圖10所示:


圖10

可以看到上述圖10內(nèi)的紅色標(biāo)記處,name的值從NULL變成了"",那么證明我們的fastJson消息的轉(zhuǎn)換配置完美生效了。如果你的效果不是上圖10所示,請(qǐng)檢查FastJsonConfiguration配置以及maven依賴(lài)問(wèn)題。

總結(jié)

以上便是我們本章的全部講解內(nèi)容,本章主要講解了SpringBoot項(xiàng)目如何將返回的消息從內(nèi)部的Json轉(zhuǎn)換變成fastJson轉(zhuǎn)換,如何添加fastJson的轉(zhuǎn)換器過(guò)濾配置SerializerFeature。因?yàn)?#64;ResultControll注解的Controller本身返回值就是json字符串,我們上述講解通過(guò)兩次修改fastJson過(guò)濾器配置的方式見(jiàn)證了fastJson的神奇效果。

本上內(nèi)容已經(jīng)上傳到碼云:

SpringBoot配套源碼地址:gitee.com/hengboy/spr…

SpringCloud配套源碼地址:gitee.com/hengboy/spr…

SpringBoot相關(guān)系列文章請(qǐng)?jiān)L問(wèn):目錄:SpringBoot學(xué)習(xí)目錄

QueryDSL相關(guān)系列文章請(qǐng)?jiān)L問(wèn):QueryDSL通用查詢(xún)框架學(xué)習(xí)目錄

SpringDataJPA相關(guān)系列文章請(qǐng)?jiān)L問(wèn):目錄:SpringDataJPA學(xué)習(xí)目錄

SpringBoot相關(guān)文章請(qǐng)?jiān)L問(wèn):目錄:SpringBoot學(xué)習(xí)目錄,感謝閱讀!

歡迎加入QQ技術(shù)交流群,共同進(jìn)步。


QQ技術(shù)交流群


總結(jié)

以上是生活随笔為你收集整理的第五章:配置使用FastJson返回Json视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。