spring boot 使用 fastjson 解析數(shù)據(jù)

spring MVC 中使用 MessageConverter 在遇到 @RequestBody 時菌瘫,將請求體中的 json 字符串轉(zhuǎn)換為java對象,遇到 @ResponseBody 時將方法返回值轉(zhuǎn)換為 json 字符串作為請求響應(yīng)內(nèi)容遗淳。
有時我們想要修改 json 字符串的轉(zhuǎn)換特性時(例如 null 值的處理抓歼,時間格式等) 纵寝,需要添加自定義的 MessageConverter掩浙。我平時使用 fastjson 比較多。
先來看看不用 fastjson 時的 樣子


這個接口中鲤脏,并沒有返回 password 字段们颜, 默認的 MessageConverternull 值轉(zhuǎn)換成了 "password": null 的形式吕朵。createTime 在 java 代碼中是 date 類型,轉(zhuǎn)換成了時間戳 timestamp窥突。

使用 fastjson

  1. 引入依賴
    之前的已經(jīng)引入了努溃,可以跳過
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.22</version>
</dependency>
  1. 繼承 FastJsonHttpMessageConverter
    config 包中新建 FastJsonHttpMessageConverterEx.java
public class FastJsonHttpMessageConverterEx extends FastJsonHttpMessageConverter {
    public FastJsonHttpMessageConverterEx() {
        // 在這里配置 fastjson 特性
    }

    @Override
    protected boolean supports(Class<?> clazz) {
        return super.supports(clazz);
    }
}
  1. 配置 FastJsonHttpMessageConverterEx
    在 WebMvcConfigurer.java 中 Override configureMessageConverters 方法,新增內(nèi)容如下
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(fastJsonHttpMessageConverterEx());
        super.configureMessageConverters(converters);
    }

    @Bean
    public FastJsonHttpMessageConverterEx fastJsonHttpMessageConverterEx() {
        return new FastJsonHttpMessageConverterEx();
    }

配置完畢阻问,重啟項目茅坛,再來添加一篇文章試試。


原本為 nullpassword 字段不見了则拷,可見 fastjson 默認是不轉(zhuǎn)換 null 值的贡蓖。fastjson 對日期的默認處理和spring MVC 默認的MessageConverter一樣, createTime 還是時間戳 timestamp的格式煌茬。

配置 fastjson

接下來以轉(zhuǎn)換 null 值和換一種時間格式(yyyy-MM-dd HH:mm:ss)為例看看怎么配置 fastjson斥铺。
在 FastJsonHttpMessageConverterEx.java 的構(gòu)造方法中

    public FastJsonHttpMessageConverterEx() {
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");    // 自定義時間格式
        fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue); // 正常轉(zhuǎn)換 null 值
        this.setFastJsonConfig(fastJsonConfig);
    }

重啟項目,再次添加一篇文章試試


null 值又回來啦坛善,createTime 也變成了我們想要的樣子晾蜘。
SerializerFeature 那個類里面還有好多特性,可以點開看看眠屎。
在平時的開發(fā)中我比較喜歡 fastjson 默認的配置(不顯示 null 值剔交,使用時間戳 timestamp 表示時間),timestamp 形式的時間也方法客戶端轉(zhuǎn)換改衩,雖然可讀性方面差了點岖常。

查看項目完整代碼

項目地址: https://github.com/hyrijk/spring-boot-blog
克隆項目到本地

git clone https://github.com/hyrijk/spring-boot-blog.git

checkout 到當前版本

git checkout d7365d85b21491f6746f7e08cc2ef5505751d082

完。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葫督,一起剝皮案震驚了整個濱河市竭鞍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌橄镜,老刑警劉巖偎快,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異洽胶,居然都是意外死亡晒夹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門姊氓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丐怯,“玉大人,你說我怎么就攤上這事他膳∠旆辏” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵棕孙,是天一觀的道長舔亭。 經(jīng)常有香客問我些膨,道長,這世上最難降的妖魔是什么钦铺? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任订雾,我火速辦了婚禮,結(jié)果婚禮上矛洞,老公的妹妹穿的比我還像新娘洼哎。我一直安慰自己,他們只是感情好沼本,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布噩峦。 她就那樣靜靜地躺著,像睡著了一般抽兆。 火紅的嫁衣襯著肌膚如雪识补。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天辫红,我揣著相機與錄音凭涂,去河邊找鬼。 笑死贴妻,一個胖子當著我的面吹牛切油,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播名惩,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼澎胡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绢片?” 一聲冷哼從身側(cè)響起滤馍,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎底循,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槐瑞,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡熙涤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了困檩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祠挫。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悼沿,靈堂內(nèi)的尸體忽然破棺而出等舔,到底是詐尸還是另有隱情,我是刑警寧澤糟趾,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布慌植,位于F島的核電站甚牲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝶柿。R本人自食惡果不足惜丈钙,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望交汤。 院中可真熱鬧雏赦,春花似錦、人聲如沸芙扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戒洼。三九已至俏橘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間施逾,已是汗流浹背敷矫。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汉额,地道東北人曹仗。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像蠕搜,于是被迫代替她去往敵國和親怎茫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容