如何为json响应添加和忽略字段

Rom*_*omi 6 java json hibernate jackson

我正在使用RestEasy和hibernate在Jackson中返回响应.我有一个bean播放器,其中包含字段:name,id,age,position.

现在,我正在实现两个GET休息方法来恢复json.

  1. getPlayer(),即返回玩家:姓名,身份证,年龄,职位.

  2. getPlayers(),这是返回一个球员名单,但有这个球员名单,我不想返回位置.

我的意思是,我如何为一个响应添加一个字段而忽略它以获得另一个响应.

请建议.

谢谢

dan*_*nik 18

您应该@JsonIgnore在POJO getter上使用注释.

http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html

更新:

您需要使用接口@JsonIgnoreProperties并将其设置为@JSONFilter您的请求映射.

您可以在此处阅读更多相关信息:http: //www.jroller.com/RickHigh/entry/filtering_json_feeds_from_spring


eid*_*den -8

你不能简单地将位置字段清空吗?

@GET
@Path("/players")
public List<Player> getPlayers(){
    List<Player> players = getPlayersFromHibernate();

    for(Player player : players)
        player.setPosition(null);

    return players;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您忘记编写代码来清空该字段,则可能会引入错误。使用“@JsonIgnore”,这样你就不必这样做。 (4认同)
  • 这对我来说看起来是最简单的解决方案,同时将 @JsonIgnore 添加到必须始终忽略的属性中。艾登,你有找到其他方法吗?我不喜欢使用 JsonView 和 JsonFilter 来获得相同结果的方式。 (2认同)