說實話這個問題真的讓我頭疼,最終想到乙個投機取巧的方法,下面且聽我一一道來。
背景
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 ...