我正在使用 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
提交
取消