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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五章:配置使用FastJson返回Json视图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fastJson是阿里巴巴旗下的一個開源項目之一,顧名思義它專門用來做快速操作Json的序列化與反序列化的組件。它是目前json解析最快的開源組件沒有之一!在這之前jaskJson是命名為快速操作json的工具,而當阿里巴巴的fastJson誕生后jaskjson就消聲匿跡了,不過目前很多項目還在使用。

本章目標

將fastJson加入到SpringBoot項目內,配置json返回視圖使用fastJson解析。

創建SpringBoot項目

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


圖1

可以看到我們事先導入了,Web、MySQL、JPA組件,我們把上一章的application.yml配置文件復制到我們的項目對應的目錄下,并且修改pom.xml添加Druid的支持。如下圖2所示:


圖2

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

添加依賴

跟我們上一章很相似,我們需要到maven倉庫復制對應的maven依賴xml配置到我們項目的pom.xml中。訪問倉庫地址:mvnrepository.com/artifact/co…,這里我們使用fastJson最新版本,我們當訪問fastJson的列表界面時可以看到阿里巴巴2017年就發布了很多個版本,證明阿里巴巴一直在維護并且升級版本,所以我們可以大膽的放心使用。添加效果圖如下圖3所示:


圖3

添加完成依賴后我們把上一章的實體類、控制器、JPA復制到我們當前項目下,我們就不重復講解如何創建這些簡單的實體類了。如下圖4所示:


圖4

我們接下來創建一個FastJsonConfiguration配置信息類,添加@Configuration注解讓SpringBoot自動加載類內的配置,有一點要注意我們繼承了WebMvcConfigurerAdapter這個類,這個類是SpringBoot內部提供專門處理用戶自行添加的配置,里面不僅僅包含了修改視圖的過濾還有其他很多的方法,包括我們后面章節要講到的攔截器,過濾器,Cors配置等。
fastJson視圖過濾配置詳細內容如下圖5所示:


圖5

上述圖5內fastJson配置實體調用setSerializerFeatures方法可以配置多個過濾方式,下面我們來介紹下常用的SerializerFeatures配置。

FastJson SerializerFeatures

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

項目初嘗試運行

經過上述的配置我們基本完成對了SpringBoot整合FastJson的內容,我們接下來嘗試運行下項目,如下圖6所示:


圖6

可以看到我們的項目正常運行了,我們訪問之前編寫的查詢列表的請求,看是否給我返回了相應的數據,訪問地址:127.0.0.1:8080/user/list,如下圖7所示:


圖7

可以看到我們得到了我們想要的結果,那么接下來我們該如何去測試fastJson是否已經生效了呢?

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


圖8

我們可以看到我們將之前的name為test的name字段設置了NULL,我們請求列表接口還是可以得到該字段的但是字段返回是沒有值得。
接下來修改FastJsonConfiguration類內的setSerializerFeatures方法,再添加一個配置WriteNullStringAsEmpty,我們再次重啟項目訪問用戶列表地址效果如何?修改配置如下圖9所示:


圖9

配置修改完成后,重啟我們的項目程序,訪問用戶列表請求地址,得到的返回結果如下圖10所示:


圖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技術交流群,共同進步。


QQ技術交流群


總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。