一尘不染

带有JSON的Jersey RESTfull服务

json

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

JSON发布:

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

我尝试将其解析为Java变量:

  @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的消息正文阅读器;找不到字符集= UTF-8。

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


阅读 310

收藏
2020-07-27

共1个答案

一尘不染

您需要创建一个POGO,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文件。

2020-07-27