Jackson TypeInfo

239
25 марта 2018, 21:08

Такой вопрос: Resttemplate возвращает responseEntity , которая автоматически десериализуется ObjectMappe (Jackson), в json который приходит есть поля @class: "Object" , стоит следующая задача нужна заменить название класса на своё , каким образом это можно сделать ? Вроде бы есть DefaultTypeResolverBuilder , но он вроде как наоборот собирает json (сериализует) Возможно есть какой-то препроцессор , чтобы перед десериализацией обработать json как string и просто заменить что надо.

Answer 1

Чтобы не повторятся, вот вам статейка Inheritance with Jackson | Beeldung

Если коротко можно делать так:

@JsonTypeInfo(
  use = JsonTypeInfo.Id.NAME, 
  include = JsonTypeInfo.As.PROPERTY, 
  property = "type") // имя поля, в которое будет записан тип
@JsonSubTypes({ 
  @Type(value = Car.class, name = "car"),  // синонимы для типов
  @Type(value = Truck.class, name = "truck") 
})
public abstract class Vehicle {
    // fields, constructors, getters and setters
}

В итоге получим это:

{
    "vehicles": 
    [
        {
            "type": "car",
            "make": "Mercedes-Benz",
            "model": "S500",
            "seatingCapacity": 5,
            "topSpeed": 250.0
        },
        {
            "type": "truck",
            "make": "Isuzu",
            "model": "NQR",
            "payloadCapacity": 7500.0
        }
    ]
}
READ ALSO
Вариативность действий в RecyclerView

Вариативность действий в RecyclerView

Хотел бы немного посоветоваться со знающими людьмиМожно ли используя Adapter делать проверку на то, есть ли данные в массиве

225
Interstitial реклама

Interstitial реклама

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

195
Как забирать из содержимого (из ответа сервера) другой заголовок?

Как забирать из содержимого (из ответа сервера) другой заголовок?

Пытаюсь парсить адреса картинок с помощью кода:

242
Объекты и ссылки

Объекты и ссылки

Здравствуйте, можете подсказать что происходит со ссылками и объектами в этой программе(задача из Head First Java)?

223