我一直在搜寻我的屁股,试图找出如何做到这一点:我有一个Jersey REST服务。调用REST服务的请求包含一个JSON对象。我的问题是,从Jersey POST方法实现中,如何获得对HTTP请求正文中的JSON的访问?
任何提示,技巧,示例代码的指针,将不胜感激。
谢谢…
-史蒂夫
我不确定如何获取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); } }