JAX-RS Post 多个对象
我有一种方法;
@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(ObjectOne objectOne, ObjectTwo objectTwo)
现在我知道我可以以json格式发布单个对象,只需将其放入正文中即可。但是可以做多个对象吗?如果是这样,如何?
我有一种方法;
@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(ObjectOne objectOne, ObjectTwo objectTwo)
现在我知道我可以以json格式发布单个对象,只需将其放入正文中即可。但是可以做多个对象吗?如果是这样,如何?
你不能像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)
答案是否定的。
原因很简单:这是关于您可以在方法中接收的参数。它们必须与请求相关。右?因此,它们必须是标头或 Cookie、查询参数、矩阵参数、路径参数或请求正文。(只是为了讲述完整的故事,还有其他类型的参数称为上下文)。
现在,当您在请求中收到 JSON 对象时,您将在请求正文中收到它。请求可能有多少个机构?一个,而且只有一个。因此,您只能接收一个 JSON 对象。