亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SSM框架下前后端分離@ResponseBody返回json如何忽略特定屬性

SSM框架下前后端分離@ResponseBody返回json如何忽略特定屬性

慕碼人8056858 2018-10-14 16:12:51
model 代碼:public class A{     private long id;        private String name;        private String avatar;        private int score;        private B b;        //......setter and getter }controller代碼:@RequestMapping("/A")@ResponseBodypublic A getModel(){     A a = new A();     a.setName("one");     a.setAvatar("avatar.jpg");         return a; }那么在前端請求/A時就會得到:{id:0,name:"one",avatar:"avatar.jpg",score:0,b:null}這不是我希望的結果,我希望前端只能拿到它所需要的name 和 avatar。不完美的解決方案用mybatis時,每次查詢結果數據,用Map來承載,而不是bean,在Controller中也是如此(甚至可以剔除model層)。但這樣就要求對數據庫表非常了解,而犧牲了很多便利操作(如 增、改操作)
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

可以使用jackson的Include.NON_DEFAULT 屬性為默認值不序列化 
ObjectMapper mapper = new ObjectMapper();

mapper.setSerializationInclusion(Include.NON_NULL);

//通過該方法對mapper對象進行設置,所有序列化的對象都將按改規則進行系列化 
//Include.Include.ALWAYS 默認 
//Include.NON_DEFAULT 屬性為默認值不序列化 
//Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化 
//Include.NON_NULL 屬性為NULL 不序列化


查看完整回答
反對 回復 2018-10-29
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

反射解決,用字符串的形式設置所有獲取的字段名。
通過反射獲取到該類和所要獲取的字段get方法,保存在一個map中

查看完整回答
反對 回復 2018-10-29
  • 2 回答
  • 0 關注
  • 2667 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號