JAX-RS Post 多个对象

2022-08-31 12:58:03

我有一种方法;

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

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


答案 1

你不能像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)

答案 2

答案是否定的

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

现在,当您在请求中收到 JSON 对象时,您将在请求正文中收到它。请求可能有多少个机构?一个,而且只有一个。因此,您只能接收一个 JSON 对象。