ho questa classe del modello JSON,Jackson Tipo polimorfico trattamento - proprietà scartato
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;
}
Quando provo a deserializzare il seguente JSON,
{
assets: [
{
"category": "Series",
"id": "ID1",
"seriesName": "SeriesName1",
"seasonNumber": 1
},
{
"category": "Movies",
"id": "ID2",
"movieName": "MovieName1"
}
]
}
vedo che tutte le proprietà sono deserializzate correttamente, ad eccezione della proprietà category
, che sono null
in entrambi i tipi di asset.
Sto facendo qualcosa di sbagliato? O è questo il comportamento atteso - la proprietà che viene usata per dedurre il sottotipo viene scartata durante la deserializzazione?
non si ha il controllo anche sulla serializzazione? Voglio dire se puoi aggiungere altre proprietà nel flusso json – eugen
@eugen Non ho il controllo sulla serializzazione. Penso che aggiungere un discriminatore di tipo nei sottotipi sia la strada più facile da percorrere. – zihaoyu