Moje kodu jest jak poniżej:otrzymaniu json i deserializacji lista obiektu na wiosnę mvc kontroler
kontroler
@RequestMapping(value="/setTest", method=RequestMethod.POST, consumes="application/json")
public @ResponseBody ModelMap setTest(@RequestBody List<TestS> refunds, ModelMap map) {
for(TestS r : refunds) {
System.out.println(r.getName());
}
// other codes
}
testy Pojo
public class TestS implements Serializable {
private String name;
private String age;
//getter setter
}
JSON żądania
var z = '[{"name":"1","age":"2"},{"name":"1","age":"3"}]';
$.ajax({
url: "/setTest",
data: z,
type: "POST",
dataType:"json",
contentType:'application/json'
});
To daje ten błąd
java.lang.ClassCastException: java.util.LinkedHashMap nie mogą być oddane do com.gogoair.cidb.entities.TestS
Używam wiosna 3.1.2 i Jackson 2.0.4
Edycja: Chcę otrzymać listę obiektów TestS w mojej metodzie sterownika i przetworzyć je. Nie jestem w stanie znaleźć, jeśli wysyłam błędny json lub moja metoda jest błędna.
Czy jesteś pewien, że to twój aktualny kod? Klient wywołuje '/ cmp/approveRefunds', a kontroler jest zmapowany do'/setTest'. –
zmodyfikowane pytanie – HKumar
odsyłają to, http: //stackoverflow.com/questions/10864049/map-json-array-of-objects-to-requestbody-listt-using-jackson – Touchstone