在json的Dropwizard掩藏的领域

时间:2014-02-14 04:17:56

标签: jackson dropwizard

在Dropwizard中隐藏模型上的字段的最佳方法是什么? (如果我希望能够通过Jackson反序列化该字段,但在序列化时隐藏它)

例如,如果我有以下型号:

class User {
  private String secret;
  private String username;
}

我希望能够通过调用new ObjectMapper().readValue()创建一个具有秘密的用户,但是我希望在将其序列化为JSON时隐藏它的秘密字段。

2 个答案:

答案 0 :(得分:2)

在属性

之前添加@JsonIgnore注释

或者您可以添加@JsonIgnoreProperties注释并指定要排除的字段

public class Foo{
     @JsonIgnore
     private String bar;
     ...
}

@JsonIgnoreProperties(value = { "bar" })
public class Foo {
    private String bar;

...
}

或者如果您只想在序列化时忽略此字段,而不是在反序列化时忽略

public class Foo{

     private String bar;
     ...
     @JsonIgnore
     public String getBar(){
           return bar;
     }

     public void setBar(String bar){
           this.bar = bar;
     }
}

答案 1 :(得分:0)

如果您只想在seriazliation期间隐藏它,请将@JsonIgnore注释添加到属性getter。

class User {
  @JsonProperty
  private String secret;
  @JsonProperty
  private String username;
  @JsonIgnore
  public String getSecret(){
      return secret;
  }
  public void setSecret(String secret){
      this.secret = secret;
  }
  ...
}