使用JSON的Jersey RESTfull服务

gie*_*s0r 2 java parsing json jersey

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

JSON-帖子:

{"algID":0,"vertices":[1,2,3]}
Run Code Online (Sandbox Code Playgroud)

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

  @POST
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("getCloseness_vertices")
  public String getCloseness_vertices(
  @FormParam("algID") int algID,
  @FormParam("vertices") IntArray vertices)
Run Code Online (Sandbox Code Playgroud)

如果我这样尝试:

public String getCloseness_vertices(int algID)
Run Code Online (Sandbox Code Playgroud)

Tomcat说:

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

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

Bri*_*ach 7

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

import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class MyPojo {
    public int algID;
    public int[] verticies;

    public MyPojo() {} // constructor is required

}
Run Code Online (Sandbox Code Playgroud)

然后 ...

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

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