Este es mi back-end donde el método toma un objeto de estudiante y un ID de cadena.
@PostMapping(path="/edit/student")
@RequestMapping(value = "/edit/student", method = RequestMethod.POST)
public void editStudent(@RequestBody Student student,String id){
ss.editStudent(student,id);
}
Cuando trato de hacer una solicitud de publicación usando cartero, envía nulo para todo.
{
"student":{
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "[email protected]"
},
"id":"1"}
Mira esto. esto puede ayudar un poco a comprender. El backend obtiene todo como nulo.
Esta es la llamada posterior del cartero. Llamada cartero
Parece que el JSON que está enviando como carga útil POST no es una representación de un objeto Student. En cambio, es una representación de un objeto que contiene dos miembros, un objeto Student con nombre student
y una cadena con nombre id
.
{
"student":{ //<-- This is a Student object
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "[email protected]"
},
"id":"1" //<-- This is a String
}
Si esa carga útil se deserializara en una clase Java, se vería así:
public class SomeObject {
public Student student;
public String id;
}
En resumen, su punto final REST espera un objeto Student, pero eso no es lo que le está proporcionando y no puede deserializar esta representación "SomeObject" en una instancia de Student.
Intente cambiar su carga útil para que sea la representación del objeto Student que espera el punto final:
{
"firstname": "jay",
"lastname": "patel",
"studentId": "2",
"email": "[email protected]"
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras