这是我的后端,方法使用一个学生对象和一个字符串ID。
@PostMapping(path="/edit/student")
@RequestMapping(value = "/edit/student", method = RequestMethod.POST)
public void editStudent(@RequestBody Student student,String id){
ss.editStudent(student,id);
}
当我尝试使用邮递员进行邮寄请求时,它将为所有内容发送空值。
{
"student":{
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "temp163@gmail.com"
},
"id":"1"}
检查一下。这可能会有所帮助。 Backend gets everything as null.
这是邮递员的电话。 Postman call
答案 0 :(得分:1)
看起来像您作为POST有效负载发送的JSON 不是表示Student对象。相反,它是包含两个成员的对象的表示形式,一个名为student
的Student对象和一个名为id
的String。
{
"student":{ //<-- This is a Student object
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "temp163@gmail.com"
},
"id":"1" //<-- This is a String
}
如果将有效负载反序列化为Java类,则看起来像这样:
public class SomeObject {
public Student student;
public String id;
}
简而言之,您的REST端点期望有一个Student对象,但这不是您要提供的对象,并且无法将“ SomeObject”表示形式反序列化为Student实例。
尝试将您的有效负载更改为仅代表端点期望的Student对象:
{
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "temp163@gmail.com"
}