Nie można znaleźć deserializacji dla nie-betonowego typu kolekcji
Używam biblioteki jackson do mapowania JSON w obiekty. Uprościłem problemdużo, Oto co się dzieje:
public class MyObject{
public ForeignCollection<MySecondObject> getA(){
return null;
}
public ForeignCollection<MyThirdObject> getB(){
return null;
}
}
Analizuję pusty ciąg JSON:
ObjectMapper mapper = new ObjectMapper();
mapper.readValue("{}", MyObject.class);
NareadValue
, Dostaję ten wyjątek:
com.fasterxml.jackson.databind.JsonMappingException: Can not find a deserializer for non-concrete Collection type [collection type; class com.j256.ormlite.dao.ForeignCollection, contains [simple type, class com.test.MyThirdObject]]
Dzieje się tak, gdy mamdwa get
metody wMyObject
klasa, która zwraca aForeignCollection
. Usuwanie jednego zget
metody nie powodują wyjątków.
Jestem zaskoczony faktem, że mapper patrzy naget
metod, powinien po prostu ustawić pola, które wskazuję.
Co tu się dzieje?