java - 如何使用 jax rs 将 json 对象传递给 java Rest Web 服务

标签 java json rest jax-rs jackson

我需要有关 updateGroup 方法的方法签名的帮助。 这是我传递的 json - 它是一组操作。

    [{"action":"add","key":"104"}]

这是传递给的方法

@PUT
@Path("/group/{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public IRestResponse updateGroup(@PathParam("id") String GroupName,
                                 Object GroupActions){
    //Do Something...
}

上面的GroupActions应该是什么类型来接收json。 ? HashMapArrayList,某种组合?

最佳答案

您可以使用任何您想要的集合类型:List、Collection、ArrayList、HashSet 等;或者,有时更好的是指定类型的数组。因此,其中之一:

public IRestResponse updateGroup(..., List<GroupAction> groupActions);
public IRestResponse updateGroup(..., GroupAction[] groupActions);
public IRestResponse updateGroup(..., HashSet<GroupActions> groupActions);

我不太清楚为什么其他答案建议您使用 String:这不太可能起作用(因为默认转换器不会从 JSON/XML 类型返回到 String),但更重要的是,这是不必要的额外工作没有收获。

但是如果您绝对想要进行手动解析(如果是这样,请使用 Jackson,这是大多数框架使用的),您可以将输入作为 InputStream 并将其提供给解析器。它是最佳使用的“原始类型”,并且没有注册处理程序会导致问题。

关于java - 如何使用 jax rs 将 json 对象传递给 java Rest Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6212047/

相关文章:

java - 这个 Java 类是否存在可见性风险或线程安全?

java - String[] 到 BigDecimal[]

java - SPRING REST 中与父类的响应

java - Spring 拦截器不适用于部分 REST 端点

json - 在一个盒子里休息后端?

java - 我无法用 slick2D Java 解决这个问题

java - MapReduce中是否可以在同一个键下输出多个值?

javascript - 两个用户如何协作编辑一个 JSON 文件?

javascript - 如何动态引用对象?

javascript - AngularJS/JSON : Refer to array member by value instead of index?