在邮递员中完成邮递请求后,它将所有值作为NULL传递

时间:2019-09-17 20:48:09

标签: java postman

  

这是我的后端,方法使用一个学生对象和一个字符串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

1 个答案:

答案 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"
}