-5
기본 클래스 A와 2 개의 하위 클래스 B 및 C가 있습니다. A는 추상 클래스입니다. 그리고 A는 다른 클래스의 필드입니다.잭슨을 사용하여 비 직렬화 할 때 NPE 읽기 null 객체 필드 가져 오기
@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 인 경우에도 직렬화 중에 A를 건너 뛰고 싶지는 않습니다. 그런 다음 json String을 deserialize하려고하면 NPE가 발생합니다. Json String에는 하위 유형을 찾기위한 매퍼 (mapper)의 "유형"이 없기 때문이라고 생각합니다. 이 문제를 해결할 방법이 있습니까?