java - spring返回json如何判斷會(huì)返回null還是empty?
問題描述
利用spring提供的@ResponseBody可以非常方便的返回的json對(duì)象。
但是有一個(gè)問題是,有時(shí)候無法判斷@ResponseBody會(huì)返回empty('')還是null,題主大致觀察了一下。好像對(duì)于java中的String不管是null還是'',最終通過json返回的都是'',而對(duì)于Object,都會(huì)返回null,而對(duì)于int型數(shù)據(jù)都會(huì)返回0。
請(qǐng)問上面的結(jié)論是否正確?
問題解答
回答1:這個(gè)跟你的pojo中的實(shí)例變量類型和使用的json庫(kù)有關(guān)(json庫(kù)可以設(shè)置對(duì)null如何處理)
回答2:1.返回POJO時(shí)可以將業(yè)務(wù)數(shù)據(jù)封裝,比如封裝成JSONResult類,里面有code,msg,data其中data是業(yè)務(wù)數(shù)據(jù)(也就是POJO實(shí)例),code是狀態(tài)碼,msg是說明,這樣當(dāng)業(yè)務(wù)數(shù)據(jù)為空的時(shí)候,返回錯(cuò)誤碼就好,這樣返回結(jié)果依然是json格式數(shù)據(jù),方便接口調(diào)用者處理。
2.直接返回JSON格式數(shù)據(jù),利用fastjson或者net.sf.json,直接返回JSONObject對(duì)象,將業(yè)務(wù)數(shù)據(jù)手動(dòng)或者自動(dòng)填入JSONObject對(duì)象中。
回答3:如果使用的Jackon庫(kù)的話可以再pojo上面注解@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL),這樣的話如果某個(gè)屬性值為null或者'',則序列化為json的時(shí)候不會(huì)包含key
相關(guān)文章:
1. 老師您的微信號(hào)是多少?2. node.js - nodejs開發(fā)中常用的連接mysql的庫(kù)3. mysql replace 死鎖4. mysql - 字符串根據(jù)字典替換5. python如何不改動(dòng)文件的情況下修改文件的 修改日期6. 視頻文件不能播放,怎么辦?7. mysql - 分庫(kù)分表、分區(qū)、讀寫分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來哪些效率或者其他方面的好處8. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問題?9. 雙擊安裝程序,安裝不了10. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?
