Kotlin Jackson:基于两个字段反序列化子类型
我正在尝试创建一个反序列化程序,根据字段Kotlin Jackson:基于两个字段反序列化子类型,kotlin,jackson,Kotlin,Jackson,我正在尝试创建一个反序列化程序,根据字段type和Event反序列化事件,有没有简单的方法 enum class Type { ACCOUNT, NOTIFICATION } enum class EventType { CREATE, CREATED } @JsonTypeInfo(???) @JsonSubTypes( JsonSubTypes.Type(value = CreateAccountEvent::class, name = "
type
和Event
反序列化事件
,有没有简单的方法
enum class Type {
ACCOUNT,
NOTIFICATION
}
enum class EventType {
CREATE,
CREATED
}
@JsonTypeInfo(???)
@JsonSubTypes(
JsonSubTypes.Type(value = CreateAccountEvent::class, name = "???"),
JsonSubTypes.Type(value = CreatedAccountEvent::class, name = "???")
JsonSubTypes.Type(value = CreateNotificationEvent::class, name = "???")
JsonSubTypes.Type(value = CreatedNotificationEvent::class, name = "???")
)
abstract class Event @JsonCreator constructor(
@JsonProperty("type") val type: Type,
@JsonProperty("event") val event: EventType
)
class CreateAccountEvent @JsonCreator constructor(
val fieldOne: String,
val fieldTwo: String
) : Event(Type.ACCOUNT, EventType.CREATE)
class CreatedAccountEvent @JsonCreator constructor(
val id: UUID
): Event(Type.ACCOUNT, EventType.CREATED)
class CreateNotificationEvent @JsonCreator constructor(
val accountId: UUID,
val message: String
): Event(Type.NOTIFICATION, EventType.CREATE)
class CreatedNotificationEvent @JsonCreator constructor(
val notificationId: UUID,
): Event(Type.NOTIFICATION, EventType.CREATED)