使用JSON的Jersey RESTfull服务

我想将JSON-Post中的值解析为Java-Variables。 但他们总是空着的!

JSON-post:

{"algID":0,"vertices":[1,2,3]} 

我尝试将其解析为Java-Variables:

  @POST @Consumes(MediaType.APPLICATION_JSON) @Path("getCloseness_vertices") public String getCloseness_vertices( @FormParam("algID") int algID, @FormParam("vertices") IntArray vertices) 

如果我这样尝试:

 public String getCloseness_vertices(int algID) 

Tomcat说:

用于Java类int的消息体读取器,Java类型int和MIME媒体类型application / json; charset =未找到UTF-8。

任何帮助都会很好,我只是不明白。

您需要创建一个POJO,Jersey可以将JSON序列化为:

 import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class MyPojo { public int algID; public int[] verticies; public MyPojo() {} // constructor is required } 

然后 …

 @POST @Consumes(MediaType.APPLICATION_JSON) @Path("getCloseness_vertices") public String getCloseness_vertices(MyPojo p) { int i = p.algID; } 

您还需要包含jersey-json jar文件。