Я использую json-b (javaee-8.0) с реализацией yasson (1.0.3) для десериализации документа json. Работает с необработанным типом класса. Если объект данных содержит универсальные типы, я не знаю, как позволить jsonb / yasson десериализовать его, или если это вообще возможно.
public class RawClass {
@JsonbProperty
public List<RawClass1> list1;
@JsonbProperty
public List<RawClass2> list2;
public RawClass() {};
}
RawClass result = jsonb.fromJson(inputStream, RawClass.class); // works
public class GenericClass <T, E> {
@JsonbProperty
public List<T> list1;
@JsonbProperty
public List<E> list2;
public GenericClass() {};
}
// doesn't work, jsonb has no way of creating two lists with the actual
// RawClass1 and RawClass2 as types, instead maps them to HashMap.
GenericClass<RawClass1, RawClass2> result =
jsonb.fromJson(inputStream, GenericClass.class)