¿Jackson con Jersey admite clases polimórficas sobre JSON?Polimorfismo en JSON, Jersey y Jackson
Digamos, por ejemplo, que tengo una clase para padres y una clase para niños que hereda de ella. Y, digamos que quiero usar JSON para enviar & recibir Parent y Child sobre HTTP.
public class Parent {
...
}
public class Child extends Parent {
...
}
He pensado en este tipo de aplicación:
@Consumes({ "application/json" }) // This method supposed to get a parent, enhance it and return it back
public @ResponseBody
Parent enhance(@RequestBody Parent parent) {
...
}
Pregunta: ¿Si le doy esta función (a través de JSON, por supuesto) un objeto secundario, ¿funcionará? ¿Serán serializados también los campos de miembros adicionales del Niño? Básicamente, quiero saber si estos marcos admiten el consumo polimórfico & responder.
BTW, estoy trabajando con Spring MVC.
Gran respuesta Usman. Sin embargo, probablemente desee @JsonTypeInfo en el padre en vez de en los hijos. –
Podríamos hacerlo de esa manera también, en cuyo caso tendríamos que poner nombre en la anotación JsonSubTypes algo así como la respuesta aquí: http://stackoverflow.com/questions/11798394/polymorphism-in-jackson-annotations-jsontypeinfo- uso –
¿Funcionará en Jersey 2 (por ejemplo, 2.9.1)? –