У меня есть объекты json, представляющие особый случай типа объекта:
interface X {
Map<String, Object> extraInfo;
}
Подклассы:
class Y implements X {
String foo;
}
class Z implements X {
String bar;
}
В основном подклассы различаются на основе имен свойств fooи бар в объектах JSON.Как я могу настроить Джексона для десериализации этих объектов?
Я попробовал следующее, но оно не работает:
@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;
}
Может кто-нибудь указать, что мне здесь не хватает?