[英]How to avoid deserialize empty JSON Array elements from JSON String while using Jackson
我正在使用Jackson 2库,并且试图反序列化JSON响应,如下所示:
{
"employee": [
{},
{
"Details": [
{
"Name": "value",
"Lastname": "value"
}
]
}
]}
由于某些原因,我的雇员数组中有一个空元素。 在反序列化过程中是否可以丢弃该元素并避免反序列化? 当前,我的代码将空员工反序列化为具有空字段的Employee POJO类。
我的代码如下:
ObjectMapper mapper = new ObjectMapper();
Empoyee[] array = mapper.readValue(json, Empoyee[].class);
PS。 我无法触摸JSON响应。 就是这样...
您需要编写自定义反序列化器或在反序列化过程之后过滤掉empty
对象。 第二种方法听起来容易得多,因为除了针对bean的自定义反序列化程序之外,您还需要扩展已实现的数组反序列化程序( com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer
)并过滤出null
或empty
bean。
也可以看看:
首先,请确保您具有setter,getter和构造函数,然后,可以使用以下代码:
Employee employee = mapper.readValue(yourJson, Employee.class);
希望对您有所帮助。
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.