185.5.4. polymorphic deserialization에 대한 기본 매핑
지정된 Java 클래스인 com.example.MyClass
가 허용 목록에 없으면 여전히 클래스의 인스턴스를 serialize할 수 있지만 수신 측에서는 일반 기본 매핑을 사용하여 인스턴스는 역직렬화됩니다.
Jackson에서 polymorphic 개체 매핑이 활성화되면 오브젝트를 인코딩하는 몇 가지 다른 방법이 있습니다.
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY)
:{"@class":"com.example.MyClass", "property1":"value1", "property2":"value2", ...}
이 경우 인스턴스는 속성이 있는
Object
로 역직렬화됩니다.With
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.WRAPPER_ARRAY)
:["com.example.MyClass", {"property1":"value1", "property2":"value2", ...}]
이 경우 인스턴스는 두 개의 필드를 포함하는 JSON 배열로 역직렬화됩니다.
-
값이
com.example.MyClass
인문자열
-
두 개 이상의 속성(또는 두 개 이상) 속성을 가진
Object
-
값이
With
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.WRAPPER_OBJECT)
:{"com.example.MyClass":{"property1":"value1", "property2":"value2", ...}}
이 경우 인스턴스는 단일 필드
com.example.MyClass
를 사용하여 JSON 맵으로 역직렬화되며 값은 두 개 이상의 속성이 있는Object
로 역직렬화됩니다.