【发布时间】:2026-01-08 01:10:01
【问题描述】:
我想对子类型做这样的事情。 我有 3 种不同类型的对象:
{
"value": "string"
}
{
"value": {
"type": "obj1"
}
}
{
"value": {
"type": "obj2"
}
}
value 可以是字符串或对象。
对应的Java类是
public interface Value {
}
public class ValueString implements Value {
String value;
}
public abstract class ValueObj implements Value{
public String type;
}
public class ValueObj1 extends ValueObj {
private Obj1 value;
}
public class ValueObj2 extends ValueObj {
private Obj2 value;
}
我不介意在 Obj1 和 Obj2 中使用鉴别器,但是当值只是一个字符串时,就没有鉴别器了。有没有一种方法可以设置它,如果值是字符串,则反序列化为 ValueString,但如果它是对象,则反序列化为正确的 ValueObj1 或 ValueObj2?
【问题讨论】:
标签: java json jackson polymorphism