杰克逊地图Null Json列表

时间:2017-10-24 14:27:56

标签: json groovy jackson

我搜索过并找到了Jackson ObjectMapper throwing NullPointerException even with NON_NULL,但我没有控制班级来改变我的二传手。

我得到了

{... "fieldNames": null,...}

我应该将其反序列化为

Collection<String> fieldNames

我没有控制班级或者我得到的json。

我可以使用一些设置来处理这个问题吗?我查看了DeserializationFeature,但找不到它

1 个答案:

答案 0 :(得分:1)

当您不控制要反序列化的类时,可以使用混合。您没有提及包含Collection<String> fieldNames的类的名称,因此我们假设它名为Fields。然后创建一个新类:

class FieldsMixin {
    @JsonSetter(nulls = Nulls.SKIP)
    Collection<String> fieldNames;
}

并将mixin类添加到与原始未修改类关联的ObjectMapper中:

mapper.addMixIn(Fields.class, FieldsMixin.class);

这是Jackson 2.9中的一项新功能,您猜测如果JSON中的值为null,它将跳过调用setter方法或以其他方式设置字段。 Documentation