java如何避免在使用Jackson时从JSON字符串反序列化空JSON数组元素
我正在使用Jackson 2库,并尝试反序列化JSON响应,如下所示:
{
"employee": [
{},
{
"Details": [
{
"Name": "value",
"Lastname": "value"
}
]
}
]}
由于某些原因,我的employee数组中有一个空元素。在反序列化过程中,是否可以丢弃该元素并避免对其进行反序列化?目前,我的代码将空employee反序列化为带有null字段的employee POJO类
我的代码如下所示:
ObjectMapper mapper = new ObjectMapper();
Empoyee[] array = mapper.readValue(json, Empoyee[].class);
另外,我无法触摸JSON响应。这就是它是什么
# 1 楼答案
首先,请确保您有setter、getter和constructor,然后, 您可以使用以下选项:
# 2 楼答案
在反序列化过程之后,您需要编写自定义反序列化程序或过滤掉
empty
对象。第二种方法听起来更容易,因为除了bean的自定义反序列化器之外,您需要扩展已经实现的数组反序列化器(com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer
),并过滤掉null
或empty
bean另见:
# 3 楼答案
希望它能帮助你
或