gpt4 book ai didi

java - 通过父类字段值对Jackson进行反序列化子类

转载 作者:行者123 更新时间:2023-12-02 13:19:13 25 4
gpt4 key购买 nike

我有一个家长类:

open class NetworkMessage(var type: NetworkMessageType)

还有很多子类,例如
class ConnectionAcceptedResponseMessage(
val accepted: Boolean,
val uid: String
) : NetworkMessage(NetworkMessageType.CONNECTION_ACCEPTED)

因此,每种消息类型均由父类字段值明确确定。有什么方法可以仅使用注释而不使用treeNode来反序列化具体子类?

最佳答案

在Java中,您可以在父类上执行以下操作:

@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "type"
)
@JsonSubTypes({
@JsonSubTypes.Type(value = ConnectionAcceptedResponseMessage.class, name = "CONNECTION_ACCEPTED"),
@JsonSubTypes.Type(value = OtherResponseMessage.class, name = "OTHER")
})

我猜在 Kotlin 这将是类似的。

关于java - 通过父类字段值对Jackson进行反序列化子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60299238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com