如何过滤JAX-RS服务的响应?

时间:2012-07-31 09:06:33

标签: java jax-rs

我得到了以下值对象:

@XmlRootElement
public class Movie{
  public String name;
  public Date releaseDate;
  public List<Actors> actors;
}

我得到了以下服务

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Movie> moviesByYear(int year){
//return all movies by year
}

一些ORM框架在数据库中搜索电影。我的问题是:我想过滤响应,不返回actor列表(因为这个字段不相关,并使响应更大)。我当然可以

for(Movie movie: movies){
  movie.actors = null;
}

但如果我想删除多个字段,这会迅速升级。

2 个答案:

答案 0 :(得分:1)

如果您不希望在回复中包含actors字段,则可以使用@XmlTransient对字段进行注释。有关详细信息,请参阅JavaDoc

否则,您可以将Movie对象包装到不显示actors字段的包装器对象中。

答案 1 :(得分:0)

如果该服务没有执行此操作的方法,则您必须自行更改服务代码。