es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

@RequestBody mapea al objeto y obtén simultáneamente la cadena de solicitud cruda.

He usado @RequestBody para mapear la solicitud a un objeto en el controlador REST, pero al mismo tiempo necesito obtener el JSON sin procesar de la solicitud sin mapearlo. No mapeo todo el contenido JSON a un objeto. ¿Cómo puedo obtener simultáneamente el JSON sin procesar y el JSON mapeado a un objeto?

@RequestMapping(path = "/rest/web")
public ResponseEntity<string> paymentHook(@RequestBody UserReq request, BindingResult bindingResult)

Solo puedo obtener el contenido sin procesar de esta manera @RequestBody String payload, pero luego debo analizarlo “manualmente”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener tanto el JSON bruto como el objeto mapeado al mismo tiempo, puedes modificar la anotación @RequestBody para aceptar tanto objetos String como UserReq.

    @RequestMapping(path = "/rest/web")
    public ResponseEntity<string> paymentHook(@RequestBody String rawJSON, @RequestBody UserReq userReq, BindingResult bindingResult)
    

    De esta manera, puedes acceder al JSON bruto como variable rawJSON y al objeto mapeado como variable userReq. Sin embargo, debes tener en cuenta que esta práctica no es recomendada ya que puede causar confusión y posibles errores en el código. Es mejor analizar manualmente el JSON bruto si es necesario.

Comments are closed.