JackSon返回值為null的字段

2021-09-22 21:23:16 字數 1375 閱讀 2452

說實話這個問題真的讓我頭疼,最終想到乙個投機取巧的方法,下面且聽我一一道來。

背景

jackson:

default-property-inclusion: non_null

其實人家的這個要求也很合理,但是web團隊有些資料是否展示的邏輯是根據api是否返回該字段來控制的,如果不返回欄位就不顯示了,所以就出問題了。

解決方法

hashmapmap = new hashmap<>();

map.put("totalweight", order.gettotalweight());

map.put("source", ordersoldto.getfromreftype());

map.put("shiptophone", ordersoldto.getshiptophone());

map.put("dropship", order.getdropship());

map.put("queued", order.getissuedate());

map.put("creditreldate", order.getcreditreldate());

@jsoninclude(value = jsoninclude.include.custom, valuefilter = jsonincldevaluefilter.class, contentfilter = jsonincldevaluefilter.class)

public class jasonincludehashmap

private boolean containskey(string key)

private object get(string key)

public object gettotalweight()

public object getsource()

public object getshiptophone()

public object getdropship()

public object getqueued()

public object getsalesreleased()

}class jsonincldevaluefilter

}

然後將hashmap替換成jasonincludehashmap,就可以實現當值為null""的時候,字段不會被過濾掉,可以正常返回。

測試結果

"jasonincludehashmap":
吐槽

以後寫**真的要用class,盡量的避免hashmap這種手動拼接的行為,真實讓人頭疼。

json decode 返回值為null

json decode返回值為null有很多種情況 1.返回的json 有bom頭 2.返回的json最後有逗號 3.json格式不正確 等 這些解決方案網上都有不一一闡述解決方案 但是我發現了另一種 導致 為null的 原因 使用 curl 獲取到的json用postman列印很正常 但是 使用j...

StartService返回值為2

經過測試後發現刪除過一次後,就算一樣不解除安裝驅動,在不同的路徑下執行驅動檔案,都可以載入。那這不是說明跟路徑沒關係麼。到底是怎麼回事呢,我又更暈了 刪除是直接刪除如下圖所示 我錯誤的驅動是check driver.sys 我直接搜素check driver,找到後直接刪除check driver這...

2018 04 22 返回值為函式

今天在看函式返回值為函式的。想了半天加網上查終於理解了一點,就是它將那個返回的函式只作為乙個普通變數,再呼叫那個被返回的函式之前,這個返回函式都和普通返回值差不多 def sum late args def calc sum ax 0 for n in args ax ax n return ax ...