在开发Web服务时,我构建了一个GET方法来返回System对象的JSON列表(自定义对象,而不是java.lang类)。与预期相反,我收到一个JSON对象,其中包含一个参数,其中包含我最初预期的数组。我在这里缺少什么?
系统类
@XmlRootElement
public class System
{
private long id;
private String name;
@XmlElement
public long getId()
{
return id;
}
public void setId(long pId)
{
id = pId;
}
@XmlElement
public String getName()
{
return name;
}
public void setName(String pName)
{
name = pName;
}
}
REST服务
@Path("/systems")
public class SystemHandler
{
@GET
@Path("/list")
@Produces({MediaType.APPLICATION_JSON})
public List<System> getSystems(@Context SecurityContext sc)
{
List<System> list = null;
//Populate the list
return list;
}
}
/ systems / list
的结果{
"system": [
{
"id": "248",
"name": "FOO"
},
{
"id": "617",
"name": "BAR"
}
]
}
虽然我在期待
[
{
"id": "248",
"name": "FOO"
},
{
"id": "617",
"name": "BAR"
}
]
答案 0 :(得分:0)
删除@XmlRootElement
注释,这告诉Jackson将列表包装在系统属性中并且不是必需的。