春季:如何从POST正文中获取参数?

2022-09-02 02:25:40

使用弹簧的Web服务,其中我必须从我的发布请求的正文中获取参数?身体的内容是这样的:-

source=”mysource”

&json=
{
    "items": [
        {
            "username": "test1",
            "allowed": true
        },
        {
            "username": "test2",
            "allowed": false
        }
    ]
}

而网络服务方法看起来像:

@RequestMapping(value = "/saveData", headers="Content-Type=application/json", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<Boolean> saveData(@RequestBody String a) throws MyException {
        return new ResponseEntity<Boolean>(uiRequestProcessor.saveData(a),HttpStatus.OK);

    }

请让我知道我如何从身体中获取参数?我可以把整个身体放在我的绳子里,但我不认为这是一个有效的方法。请让我知道我如何进一步。


答案 1

您可以从请求中获取参数。

@ResponseBody
public ResponseEntity<Boolean> saveData(HttpServletRequest request,
            HttpServletResponse response, Model model){
   String jsonString = request.getParameter("json");
}

答案 2

您可以将整个帖子正文放入POJO中。下面是类似的东西

@RequestMapping(
    value = { "/api/pojo/edit" }, 
    method = RequestMethod.POST, 
    produces = "application/json", 
    consumes = ["application/json"])
@ResponseBody
public Boolean editWinner( @RequestBody Pojo pojo) { 

其中 Pojo 中的每个字段(包括 getter/setter)应与控制器接收的 Json 请求对象匹配。