Diciamo che ho una classe di dominio:Primavera @RequestBody contenente un elenco di diversi tipi (ma stessa interfaccia)
public class Zoo{
private List<Animal> animals;
....
in cui un animale è un'interfaccia con diverse implementazioni (gatto, cane). Diciamo che voglio essere in grado di salvare un oggetto Zoo:
@RequestMapping(value = "/zoo", method = RequestMethod.POST)
public @ResponseBody void save(@RequestBody Zoo zoo) {
....
e voglio inviare un JSON - qualcosa come:
{
animals:[
{type:'Cat', whiskers-length:'3'},
{type:'Dog', name:'Fancy'}
]
}
Come posso dire a Spring MVC per mappare animali a Cat scrivi quando scrivi == 'Cat' e mappalo a una classe Dog quando scrivi == 'Dog'?
Ci scusiamo per la confusione con JSON valido. Ma ancora non risolve il mio problema, che è la mappatura dall'oggetto json {type: 'Cat', whiskersLength: '3'} alla classe Cat. La classe Zoo sa solo che la lista degli animali contiene animali. Ma come fa il deserializzatore JSON a sapere quale implementazione dell'interfaccia Animal (Cane o Gatto) utilizzare per un oggetto json specifico? –