Полиморфная десериализация многоуровневого наследования через Джексона в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Полиморфная десериализация многоуровневого наследования через Джексона в Java

Сообщение Anonymous »

Как мне десериализовать следующий пример, чтобы Джексон автоматически предоставил мне правильный объект

Код: Выделить всё

public class vehicle {
String vehicleType;
}

public class car extends vehicle {
String carType;
String make;
}

public class sedan extends car {
String model;
}
В идеале я хочу передать структуру json в следующий код и создать объект правильного подтипа.
Например:

Код: Выделить всё

        ObjectMapper mapper = new ObjectMapper();
vehicle myVehicle = mapper.readValue(inputData, vehicle.class);
Assertions.assertInstanceOf(sedan.class, myVehicle);
Приведенный выше тест должен выполняться для следующих данных json

Код: Выделить всё

{
"vehicleType" : "car",
"carType" : "sedan",
"make" : "Foo",
"model" : "Bar"
}
Я могу правильно получить до 1 уровня наследования, используя что-то вроде

Код: Выделить всё

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "vehicleType")
@JsonSubTypes({
@JsonSubTypes.Type(value = car.class, name = "car")
})
public class vehicle {...}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "carType")
@JsonSubTypes({
@JsonSubTypes.Type(value = sedan.class, name = "sedan")
})
public class car extends vehicle {...}

public class sedan extends car {...}

Когда я запускаю приведенный выше код, я получаю объект типа автомобиль, а не объект типа седан.

Подробнее здесь: https://stackoverflow.com/questions/790 ... son-in-jav
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Полиморфная десериализация Джексона с несколькими абстрактными классами
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Полиморфная десериализация Джексона с несколькими абстрактными классами
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Полиморфная десериализация Джексона с несколькими абстрактными классами
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Конструктор для многоуровневого наследования в C ++
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Возможна ли полиморфная десериализация в System.Text.Json?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»