【发布时间】:2014-02-12 22:12:23
【问题描述】:
如何在 REST Web 服务中返回字符串列表
我正在使用 CXF 2.7.8
我有一种方法:
@GET
@Path("/items")
@Produces(MediaType.APPLICATION_JSON)
public List<String> getItems() {
List<String> list = service.getList();
return list;
}
我收到错误消息,因为“没有为响应类 ArrayList 找到消息正文编写器。”
选项一
我也尝试过使用 GenericEntity> 并得到与上面相同的错误
选项 2
我还为列表创建了 Wrapper 类
@XmlRootElement(name = "listWarpper")
public class ListWarpper implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> list;
public ListWarpper() {
}
public ListWarpper( List<String> list ) {
this.list = list;
}
public List<String> getList() {
return list;
}
public void setList( List<String> list ) {
this.list = list;
}
}
它工作正常,但唯一的问题是当结果只有一项进入列表时 返回的 json 是
{ list: "Only one Item"}
而不是`{list : ["Only one Item"]}
我的问题是,无论列表是空的还是只包含一个元素,我如何才能以如下形式返回 json
{ list : [...]}
或{[...]}
【问题讨论】: