【发布时间】:2013-04-01 18:48:43
【问题描述】:
我的问题是,在做出 JSON 响应时,是否有必要在 pojo 中要被 jaxb 拾取的每个元素之前添加 @XmlElement。我正在使用 jersey-json 1.17 。我之所以问这个是因为,the example given on Jersey site 没有使用注解。
我得到一个输出为{},但是当我在属性之前添加@XmlElement 时,我得到了预期的JSON 输出。我是不是做错了什么,因为我的 JSON 字符串是空的?
我的代码:
顶点列表在构造函数中填充。
这会产生{}的错误输出
@XmlRootElement
public class SquareModel {
List<Float> vertices = new ArrayList<Float>();
....
}
而这会产生正确的 JSON 字符串:
@XmlRootElement
public class SquareModel {
@XmlElement(name="vertices")
List<Float> vertices = new ArrayList<Float>();
....
}
我的返回 JSON 的资源类
@GET
@Produces(MediaType.APPLICATION_JSON)
public SquareModel getJsonString() {
return new SquareModel();
}
谢谢:)
【问题讨论】:
-
虽然不需要输入
@XmlElement,但由于某种原因,没有它我仍然无法获得输出 Json 中的字段。尽管添加了@XmlAcessorType,但即使没有@XmlElement,我也开始获取所有字段。