我搜索过并找到了Jackson ObjectMapper throwing NullPointerException even with NON_NULL,但我没有控制班级来改变我的二传手。
我得到了
{... "fieldNames": null,...}
我应该将其反序列化为
Collection<String> fieldNames
我没有控制班级或者我得到的json。
我可以使用一些设置来处理这个问题吗?我查看了DeserializationFeature,但找不到它
答案 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