杰克逊的只写属性

Mik*_*zak 5 java json jackson

在我的实体类中,我正在尝试创建一个只写字段(在序列化期间被忽略,但是通常会被反序列化).

@JsonProperty
@JsonSerialize(using=NullSerializer.class)
public String getPassword() {
    return password;
}
Run Code Online (Sandbox Code Playgroud)

几乎给了我想要的东西:JSON包含"password"字段,但值始终为null.如何完全删除该字段?

rad*_*los 11

你可以设定access价值:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
Run Code Online (Sandbox Code Playgroud)


pb2*_*b2q 10

使用@JsonIgnore上只是吸气 getPassword,而不是使用NullSerializer.然后也在setter@JsonProperty("password")上使用.

这应该允许password反序列化,但序列化的JSON输出将不包括它.

例如,"吸气剂"的方法,否则表示一个属性(例如,比方说,"的getValue"表明属性"值")进行序列化,将被忽略,除非另一个注释定义使用替代方法没有这样的属性将被输出.