我有一个用@XmlRootElement注释的简单Bean:
@XmlRootElement
public class MyBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我有一个简单的泽西服务,它公开了这个bean和这个bean的列表:
@Component
@Path("/myresource")
public class MyResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<MyBean> getAll() {
//...
return list;
}
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public MyBean getById(@PathParam("id") long id) {
//...
return bean;
}
}
麻烦的是,当我得到豆类列表时,我得到了以下json:
{"myBean":[{"name":"Hello"},{"name":"Plop"}]}
我想要的是(没有列表根名称):
{[{"name":"Hello"},{"name":"Plop"}]}
有没有一种简单的方法可以做到这一点,我没有找到任何注释?我不想为列表创建包装器。我需要修改jackson配置,还是创建一个映射器,......?
感谢您的帮助。
答案 0 :(得分:3)
感谢您的帮助,但我对数组的结果相同。
而不是那样,我删除了MyBean上的XmlRootElement注释,并在servlet声明的web.xml中添加了以下内容:
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
答案 1 :(得分:0)
AFAIK,如果您使用
MyBean[]
而不是ArrayList,你将得到你想要的!
希望有所帮助,
辖