2011-09-12 123 views
2

我想解析从JSON-Post到Java变量的值。但他们永远是空的!泽西RESTfull服务与JSON

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;未找到charset = UTF-8。

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

回答

7

你需要创建一个POJO泽西可序列化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文件。