mam tego modelu JSON klasę,Jackson polimorficzny typu manipulacja - nieruchomość wyrzucić
public class Response {
@JsonTypeInfo(use= JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property="category")
@JsonSubTypes({
@Type(value = Series.class, name = "Series"),
@Type(value = Movies.class, name = "Movies")})
public static abstract class Asset {
public String category;
public String id;
}
public static class Series extends Asset {
public String seriesName;
public int seasonNumber;
}
public static class Movies extends Asset {
public String movieName;
}
public Asset[] assets;
}
Kiedy próbuję deserializowania następujące JSON,
{
assets: [
{
"category": "Series",
"id": "ID1",
"seriesName": "SeriesName1",
"seasonNumber": 1
},
{
"category": "Movies",
"id": "ID2",
"movieName": "MovieName1"
}
]
}
widzę, że wszystkie właściwości są prawidłowo rozszeregować, z wyjątkiem własności category
, które są w obu typach zasobów.
Czy robię coś nie tak? Czy jest to oczekiwane zachowanie - właściwość używana do wnioskowania podtypu jest odrzucana podczas deserializacji?
ty także kontrolować na serializacji? Mam na myśli, jeśli możesz dodać inne właściwości do strumienia json – eugen
@eugen Nie mam kontroli nad serializacją. Myślę, że dodanie typu dyskryminatora w podtypach jest łatwiejszą drogą. – zihaoyu