Java 使用Jackson反序列化时获取NPE读取空对象字段
我有一个基类a和两个子类B和C扩展了a。a是一个抽象类。A是另一个类中的字段,类似于:Java 使用Jackson反序列化时获取NPE读取空对象字段,java,json,serialization,jackson,deserialization,Java,Json,Serialization,Jackson,Deserialization,我有一个基类a和两个子类B和C扩展了a。a是一个抽象类。A是另一个类中的字段,类似于: @JsonTypeInfo({ use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property= "type" }) @JsonSubTypes({ @JsonSubTypes.Type(value = B.class, name = "b"), @JsonSubTypes.Type(value = C.c
@JsonTypeInfo({
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property= "type"
})
@JsonSubTypes({
@JsonSubTypes.Type(value = B.class, name = "b"),
@JsonSubTypes.Type(value = C.class, name = "c")
})
public abstract class A {
}
public class B extends A {
@JsonCreator
...
}
public class C extends A {
@JsonCreator
...
}
public class MyClass {
private A a;
}
我想序列化和反序列化MyClass。而MyClass中的字段A可以为null,我不想在序列化过程中跳过,即使它为null。然后,当我尝试反序列化json字符串时,我得到了NPE。我认为这是因为Json字符串没有“类型”供映射器查找子类型。有办法解决这个问题吗?事实上,这对杰克逊来说很好。NPE由我自己的构造函数抛出