為了方便前后端開發(fā),和動(dòng)靜剝離(前后端分離)的開發(fā)模式冤留,springmvc也對(duì)json有自己的一套支持纤怒,
json分為jackson和fastJson兩種糯而,前一種springmvc默認(rèn)便是支持的熄驼,如果需要換成fastJson需要自己引入依賴和配置在springmvc里面烘豹。
首先看下對(duì)jackson所需要的依賴(注意這里有坑瓜贾,記得去maven庫里找官方的依賴携悯,之前網(wǎng)上看到一篇帖子,里面的依賴試了很久沒起作用)
下面看如果需要把jackson換成fastJson需要的依賴(fastJson使用相對(duì)于jackson好處在于龟劲,如果對(duì)象里面的屬性是null值便不會(huì)把屬性的值設(shè)置成字符串null轴或,可以省去前端開發(fā)很多事情,方便他人也是方便自己)
然后在springmvc的處理器適配器里面配置對(duì)json的支持避矢,但是如果使用的是<mvc:annotation-driven>那么就可以什么都不配置了囊榜,springmvc自動(dòng)就幫我們添加了對(duì)json格式的支持。但是我們這里希望換成fastjson砂沛,所以需要來配置上fastjson
上面的StringHttpMessageConverter是避免json格式亂碼使用的,但是好像我怎么配置都沒起作用曙求,下面那個(gè)通過FastJsonHttpMessageConverter名字就可以看出是把默認(rèn)的jackson換成了我們的fastJson
然后下面來看看我們程序
先看返回對(duì)象直接轉(zhuǎn)換成json
通過@ResponseBody這個(gè)注解告訴springmvc把對(duì)象直接返回成json格式映企,在@RequestMapping上我們添加了produces ="application/json; charset=utf-8 發(fā)現(xiàn)返回json的亂碼問題解決了
下面看接收json格式的數(shù)據(jù)直接轉(zhuǎn)換成對(duì)象
這里使用@RequestBody這個(gè)注解
下面是我們通過ajax調(diào)用
然后看我們的請(qǐng)求參數(shù)和返回
這樣簡(jiǎn)便了開發(fā),替換了之前把對(duì)象先轉(zhuǎn)成jsonString苹享,然后通過response的print或者write的方式去輸出。