java - spring返回json如何判斷會返回null還是empty?
問題描述
利用spring提供的@ResponseBody可以非常方便的返回的json對象。
但是有一個問題是,有時候無法判斷@ResponseBody會返回empty('')還是null,題主大致觀察了一下。好像對于java中的String不管是null還是'',最終通過json返回的都是'',而對于Object,都會返回null,而對于int型數(shù)據(jù)都會返回0。
請問上面的結論是否正確?
問題解答
回答1:這個跟你的pojo中的實例變量類型和使用的json庫有關(json庫可以設置對null如何處理)
回答2:1.返回POJO時可以將業(yè)務數(shù)據(jù)封裝,比如封裝成JSONResult類,里面有code,msg,data其中data是業(yè)務數(shù)據(jù)(也就是POJO實例),code是狀態(tài)碼,msg是說明,這樣當業(yè)務數(shù)據(jù)為空的時候,返回錯誤碼就好,這樣返回結果依然是json格式數(shù)據(jù),方便接口調用者處理。
2.直接返回JSON格式數(shù)據(jù),利用fastjson或者net.sf.json,直接返回JSONObject對象,將業(yè)務數(shù)據(jù)手動或者自動填入JSONObject對象中。
回答3:如果使用的Jackon庫的話可以再pojo上面注解@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL),這樣的話如果某個屬性值為null或者'',則序列化為json的時候不會包含key
相關文章:
1. [python2]local variable referenced before assignment問題2. Python2中code.co_kwonlyargcount的等效寫法3. python中怎么對列表以區(qū)間進行統(tǒng)計?4. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?5. mysql - 請問數(shù)據(jù)庫字段為年月日,傳進的參數(shù)為月,怎么查詢那個月所對應的數(shù)據(jù)6. python - 如何判斷字符串為企業(yè)注冊名稱7. javascript - vue+iview upload傳參失敗 跨域問題后臺已經(jīng)解決 仍然報403,這是怎么回事啊?8. php - 微信開發(fā)驗證服務器有效性9. html - 移動端radio無法選中10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?
