一尘不染

在Jersey服务中使用JSON对象

json

我一直在搜寻我的屁股,试图找出如何做到这一点:我有一个Jersey REST服务。调用REST服务的请求包含一个JSON对象。我的问题是,从Jersey
POST方法实现中,如何获得对HTTP请求正文中的JSON的访问?

任何提示,技巧,示例代码的指针,将不胜感激。

谢谢…

-史蒂夫


阅读 314

收藏
2020-07-27

共1个答案

一尘不染

我不确定如何获取JSON字符串本身,但是您当然可以获取其中包含的数据,如下所示:

定义一个具有JAXB注释的Java类(C),该类具有与在请求上传递的JSON对象相同的结构。

例如对于JSON消息:

{
  "A": "a value",
  "B": "another value"
}

使用类似:

@XmlAccessorType(XmlAccessType.FIELD)
public class C
{
  public String A;
  public String B;
}

然后,您可以在资源类中使用类型C的参数定义一个方法。当Jersey调用您的方法时,将基于POSTed JSON对象创建JAXB对象。

@Path("/resource")
public class MyResource
{
  @POST
  public put(C c)
  {
     doSomething(c.A);
     doSomethingElse(c.B);
  }
}
2020-07-27