我有json对象表示对象类型的特殊情况:
interface X {
Map<String, Object> extraInfo;
}
子类如下:
class Y implements X {
String foo;
}
class Z implements X {
String bar;
}
基本上,子类是根据json对象中的属性名称foo和bar来区分的。如何配置jackson反序列化这些对象?
我尝试了以下操作,但它不起作用:
@JsonSubTypes({@JsonSubTypes.Type(value = Y.class),
@JsonSubTypes.Type(value = Z.class)})
interface X {
Map<String, Object> extraInfo;
}
@Getter
class Y implements X {
public Y(@JsonProperty(value="foo") String foo) {
this.foo = foo;
}
String foo;
}
@Getter
class Z implements X {
public Z(@JsonProperty(value="bar") String bar) {
this.bar = bar;
}
String bar;
}
有人可以指出我在这里失踪了吗?