使用json返回带有java对象的数组

时间:2014-04-01 10:04:16

标签: java json rest jersey getjson

我将返回一个带有Object FLineType的Vector

Return Methode看起来像

@GET
@Path("/linetypes")
@Produces(MediaType.APPLICATION_JSON)
public Vector<FLineType> getLineTypes(){
    db = Database.getInstance();
    return db.getLineTypes();
}

FLineType看起来像

    import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class FLineType {
    private int id;
    private String bez;

public FLineType(){}

public FLineType(int id, String bez) {
    super();
    this.id = id;
    this.bez = bez;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getBez() {
    return bez;
}

public void setBez(String bez) {
    this.bez = bez;
}

}

我收到的数据看起来像

{"fLineType":[{"bez":"Linie 1","id":"1"},{"bez":"Linie 2","id":"2"},{"bez":"Linie 3","id":"3"},{"bez":"Powerplay 1","id":"4"},{"bez":"Powerplay 2","id":"5"},{"bez":"Unterzahl 1","id":"6"},{"bez":"Unterzahl 2","id":"7"}]}

但我只想在[]括号中的JSON数组数据。没有对象名称。 因为我在收到时会收到JSONException that the Data must start with [

我正在为REST服务器使用jersey 1.18。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我通过将这些行添加到我的web.xml文件来解决它。

<init-param>
  <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
  <param-value>true</param-value>
</init-param>