我有一个基类A和2个子类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.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,但我不想在序列化期间跳过A,即使它是null。然后,当我尝试反序列化json String时,我得到了NPE。我认为这是因为Json String没有mapper的“类型”来查找子类型。有办法解决这个问题吗?
答案 0 :(得分:-2)
实际上这对杰克逊来说很好。 NPE是由我自己的构造函数抛出的。