首頁  >  問答  >  主體

java - spring回傳json如何判斷會回傳null還是empty?

利用spring提供的@ResponseBody可以非常方便的回傳的json物件。

但有一個問題是,有時候無法判斷@ResponseBody會回傳empty("")還是null,題主大致觀察了一下。好像對於java中的String不管是null還是"",最終透過json回傳的都是"",而對於Object,都會回傳 null,而對於int型資料都會傳回0

請問上面的結論是否正確?

ringa_leeringa_lee2658 天前930

全部回覆(3)我來回復

  • 阿神

    阿神2017-06-14 10:53:24

    這個跟你的pojo中的實例變數型別和使用的json函式庫有關(json函式庫可以設定對null如何處理)

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-06-14 10:53:24

    1.返回POJO時可以將業務資料封裝,例如封裝成JSONResult類,裡面有code,msg,data其中data是業務資料(也就是POJO實例),code是狀態碼,msg是說明,這樣當業務數據為空的時候,回傳錯誤碼就好,這樣回傳結果還是json格式數據,方便介面呼叫者處理。

    2.直接返回JSON格式數據,利用fastjson或net.sf.json,直接返回JSONObject對象,將業務數據手動或自動填入JSONObject對象。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:53:24

    如果使用的Jackon函式庫的話可以再pojo上面註解@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL),這樣的話如果某個屬性值為null或"",則序列化為json的時候不會包含key

    回覆
    0
  • 取消回覆