我正在研究一个dropwizard项目,它在其视图包中包含一系列类,如下所示:
package api.views;
public class FooView {
public static class FindAll {
}
public static class Item {
}
}
我注意到要使用此类视图的唯一地方是资源类,其方式类似于以下内容:
@GET
@Timed
@UnitOfWork
@JsonView(FooView.FindAll.class)
public Response getAll() {
//connects to the DB via hibernate
//returns a Response containing a JSON list of Foos in the DB
}
我不理解这些视图的作用,因为它们是空的静态类,如果它们可以修改返回的JSON。
答案 0 :(得分:0)
@JsonView
注释是杰克逊功能的一部分。我没有使用此功能,但文档说明了以下内容:
此视图中的“视图”意味着能够定义逻辑属性的子集(通过getter或字段访问的内容)以进行序列化。视图是静态定义的(使用注释),但动态选择用于序列化的视图(每个序列化)。
来源:http://wiki.fasterxml.com/JacksonJsonViews
对于@JsonView
描述,几乎在网页末尾检查“使用JAX-RS查看”。