我正在使用 Jackson 2 庫,并且正在嘗試對 JSON 響應進行反序列化,如下所示:{ "employee": [ {}, { "Details": [ { "Name": "value", "Lastname": "value" } ] }]}由于某些原因,我的員工數組中有一個空元素。在反序列化過程中是否可以丟棄該元素并避免反序列化它?目前,我的代碼將空員工反序列化為具有空字段的員工 POJO 類。我的代碼如下所示:ObjectMapper mapper = new ObjectMapper();Empoyee[] array = mapper.readValue(json, Empoyee[].class);PS。我無法觸摸 JSON 響應。就是這樣...
3 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
您需要empty
在反序列化過程后編寫自定義反序列化器或過濾掉對象。第二種方法聽起來更容易,因為除了 bean 的自定義反序列化器之外,您需要擴展已經實現的數組反序列化器 ( com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer
) 并過濾掉null
或empty
bean。

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
首先,請確保您有 setter、getter 和構造函數,之后,您可以使用以下內容:
Employee employee = mapper.readValue(yourJson, Employee.class);

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
希望它會幫助你。
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
mapper.setSerializationInclusion(Include.NON_EMPTY);
或者
ObjectMapper mapper = new ObjectMapper ().configure(
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(
JsonInclude.Include.NON_NULL);
添加回答
舉報
0/150
提交
取消