一尘不染

JAX-RS发布多个对象

java

我有办法

@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(ObjectOne objectOne, ObjectTwo objectTwo)

现在我知道我可以将一个对象以json格式发布,只需将其放入正文即可。但是可以做多个对象吗?如果是这样,怎么办?


阅读 293

收藏
2020-03-19

共2个答案

一尘不染

答案是否定的。

原因很简单:这与您可以在方法中接收的参数有关。它们必须与请求相关。对?因此,它们必须是标题或cookie或查询参数或矩阵参数或路径参数或请求正文。(仅是为了讲述完整的故事,还有其他类型的参数称为上下文)。

现在,当您在请求中收到JSON对象时,您会在request正文中收到它 。该请求可能有几个机构?一个,只有一个。因此,您只能接收一个JSON对象。

2020-03-19
一尘不染

你不能使用Tarlog正确说明的方法。

但是,你可以这样做:

@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(List<ObjectOne> objects)

或这个:

@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(BeanWithObjectOneAndObjectTwo containerObject)

此外,你始终可以将方法与GET参数结合使用:

@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(List<ObjectOne> objects, @QueryParam("objectTwoId") long objectTwoId)
2020-03-19