是否可以根据 JSON 的内容使用 Jackson 将 JSON 反序列化为两种类型之一?
例如,我有以下 Java(技术上是 Groovy,但这并不重要)接口和类:
interface Id {
Thing toThing()
}
class NaturalId implements Id {
final String packageId
final String thingId
Thing toThing() {
new PackageIdentifiedThing(packageId, thingId)
}
}
class AlternateId implements Id {
final String key
Thing toThing() {
new AlternatelyIdentifiedThing(key)
}
}
我将收到的 JSON 如下所示:
这个 JSON 应该映射到 NaturalId{"packageId": "SomePackage", "thingId": "SomeEntity"}
此 JSON 应映射到 AlternateId{"key": "SomeUniqueKey"}
有谁知道我如何在不包括类型 ID 的情况下使用 Jackson 2.x 来完成此任务?