spring boot如何接收有数组的对象?

前端Json参数如下:

{
    "name":"渠道3",
    "createrId":[1,2,3,4]
}

如何用@RequestBody 注解接收呢?

// 这样貌似不行
public Response getCanal(@RequestBody Map<String, List<Integer>> req){

我要取出来createrId配置mybatis plus的IN语句使用

 queryWrapper.in("creater_id",req.get("createrId"));
阅读 4.2k
1 个回答

定义一个类:

// 省略 import,getter 和 setter 使用 lombok

@Getter
@Setter
public class QueryParams {

    private String name;

    private List<Integer> creatorId;

}

在 controller 直接将该 entity 作为入参即可:

// 省略 import

@RestController
@RequestMapping("/my_entity")
public class MyEntityController {

    @PostMapping
    public Response getCanal(@RequestBody QueryParams queryParams) {
        String name = queryParams.getName();
        List<Integer> creatorId = queryParams.getCreatorId();
        // do something...
    }

}
推荐问题