Как вы реализуете в Jackson преобразование из json-объектов Java на основе типов классов, указанных в json.Jacker deserialization: Custom Object factory
Пример Java Типы:
public class Car{
public String make;
public String model;
}
public class Spoon {
public String material;
}
public class Ownership {
public List<Object> items;
public User owner;
}
Пример JSon:
{
"items": [
{
"@class": "com.example.Car",
"make": "Mercedes-Benz",
"model": "S500"
},
{
"@class": "com.example.Spoon",
"material": "silver"
}
],
"owner": {
"name": "John"
}
}
Так как число классов неизвестно (пользователи могут добавлять любой класс) не представляется возможным использовать аннотацию @JsonSubTypes.
Кроме того, json может содержать известные классы строго типов, такие как объект User в примере, который сериализуется с использованием стандартной реализации Jackson.
Большинство примеров, которые я могу найти, например, http://www.baeldung.com/jackson-inheritance, предполагают, что количество подклассов известно, но в моем случае это не так, пользователи рамки добавят свои собственные.
В идеале реализация будет просто разрешать типы и позволить Джексону выполнять оставшуюся часть сериализации без повторения этого кода.