我正在使用Jackson 2库,并且我试图提供一个JSON响应,如下所示:
{
"employee": [
{},
{
"Details": [
{
"Name": "value",
"Lastname": "value"
}
]
}
]}出于某些原因,我的employee数组中有一个空元素。在反序列化过程中,是否可以丢弃该元素并避免其反序列化?当前,我的代码将空employee反序列化为带有空字段的Employee POJO类。
我的代码看起来是:
ObjectMapper mapper = new ObjectMapper();
Empoyee[] array = mapper.readValue(json, Empoyee[].class);PS。我不能触摸JSON响应。这就是它是..。
发布于 2019-03-04 22:49:07
您需要在反序列化过程之后编写自定义反序列化器或筛选出empty对象。第二种方法听起来容易得多,因为除了针对bean的自定义反序列化器之外,还需要扩展已经实现的数组反序列化器(com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer),并过滤掉null或empty bean。
另请参阅:
发布于 2019-03-04 19:58:48
首先,请确保您有setters、getters和constructors,在此之后,您可以使用以下内容:
Employee employee = mapper.readValue(yourJson, Employee.class);发布于 2019-03-04 20:13:41
希望它能帮到你。
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);https://stackoverflow.com/questions/54989407
复制相似问题