Я использую Spring для реализации веб-службы RESTful. Одна из конечных точек принимает строку JSON в качестве тела запроса, и я хочу сопоставить ее с POJO. Однако теперь кажется, что строка переданного JSON не является собственностью, сопоставленной с POJO.
здесь интерфейс @RestController
@RequestMapping(value="/send", headers="Accept=application/json", method=RequestMethod.POST)
public void sendEmails(@RequestBody CustomerInfo customerInfo);
модель данных
public class CustomerInfo {
private String firstname;
private String lastname;
public CustomerInfo() {
this.firstname = "first";
this.lastname = "last";
}
public CustomerInfo(String firstname, String lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}
public String getFirstname(){
return firstname;
}
public void setFirstname(String firstname){
this.firstname = firstname;
}
public String getLastname(){
return lastname;
}
public void getLastname(String lastname){
this.lastname = lastname;
}
}
И, наконец, мой запрос POST:
{"CustomerInfo":{"firstname":"xyz","lastname":"XYZ"}}
с типом содержимого, указанным как application/json
Однако, когда я распечатываю значение объекта, значение по умолчанию ( "первый" и "последний" ) распечатывается вместо значения, которое я передал ( "xyz" и "XYZ" )
Кто-нибудь знает, почему я не получаю ожидаемый результат?
FIX
Итак, оказалось, что значение тела запроса не передано, потому что мне нужно иметь аннотацию @RequestBody не только в моем интерфейсе, но и в реализации фактического метода. Как только у меня это будет, проблема будет решена.