Czy Jackson z Jersey obsługuje klasy polimorficzne nad JSON?Polimorfizm w JSON, Jersey i Jackson
Załóżmy na przykład, że mam klasę nadrzędną i klasę potomną, która dziedziczy po niej. Powiedzmy, że chcę użyć JSON, aby wysłać & otrzymywać zarówno nadrzędne, jak i podrzędne przez HTTP.
public class Parent {
...
}
public class Child extends Parent {
...
}
myślałem o tego rodzaju realizacji:
@Consumes({ "application/json" }) // This method supposed to get a parent, enhance it and return it back
public @ResponseBody
Parent enhance(@RequestBody Parent parent) {
...
}
pytanie: Jeśli daję tę funkcję (za pomocą JSON oczywiście) obiektu dziecka, to będzie działać? Czy dodatkowe pola dla dzieci będą również serializowane? Zasadniczo chcę wiedzieć, czy te frameworki obsługują odpowiedź polimorficzna &.
BTW, pracuję z Spring MVC.
Świetna odpowiedź Usman. Jednak prawdopodobnie chcesz @JsonTypeInfo na rodzica zamiast na dzieci. –
Moglibyśmy zrobić to w ten sposób, w takim przypadku musielibyśmy umieścić w adnotacji JsonSubTypes coś jak odpowiedź tutaj: http://stackoverflow.com/questions/11798394/polymorphism-in-jackson-annotations-jsontypeinfo- użycie –
Czy to działa w Jersey 2 (np. 2.9.1)? –