在Dropwizard中隐藏模型上的字段的最佳方法是什么? (如果我希望能够通过Jackson反序列化该字段,但在序列化时隐藏它)
例如,如果我有以下型号:
class User {
private String secret;
private String username;
}
我希望能够通过调用new ObjectMapper().readValue()
创建一个具有秘密的用户,但是我希望在将其序列化为JSON时隐藏它的秘密字段。
答案 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;
}
...
}