Java 使用Jackson只写属性

Java 使用Jackson只写属性,java,json,jackson,Java,Json,Jackson,在我的实体类中,我试图创建一个只写字段(在序列化过程中被忽略,但通常被反序列化) 这几乎满足了我的需要:JSON包含“password”字段,但值总是空的。如何完全删除该字段?仅在gettergetPassword上使用,而不是使用NullSerializer。然后在setter上也使用@JsonProperty(“密码”) 这应该允许对password进行反序列化,但是序列化的JSON输出将不包括它 例如,如果一个“getter”方法表示要序列化的属性(比如说,“getValue”表示要序列化

在我的实体类中,我试图创建一个只写字段(在序列化过程中被忽略,但通常被反序列化)

这几乎满足了我的需要:JSON包含“password”字段,但值总是空的。如何完全删除该字段?

仅在getter
getPassword
上使用,而不是使用
NullSerializer
。然后在setter上也使用
@JsonProperty(“密码”)

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

例如,如果一个“getter”方法表示要序列化的属性(比如说,“getValue”表示要序列化的属性“value”),则该方法将被忽略,除非另一个注释定义了要使用的替代方法,否则不会输出此类属性


您可以设置
access
值:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;

JsonIgnore还将阻止它被反序列化。这不是我想要的。抱歉,我想我只需要
@JsonIgnore
getter,但我刚刚测试了,还需要将
@JsonProperty
添加到getter。不知道,也许不同版本的情况都不同了。请参见编辑。是的,就是这个:setter上的
@JsonProperty
,getter上的
@JsonIgnore
。非常感谢。此行为取决于版本:在1.8及之前版本中,一个@JsonIgnore就足够了。但是1.9统一属性处理(以减少普通情况下的重复),并且这个“拆分”情况需要2个注释。@StaxMan thans为了澄清,我确信我过去只需要
@JsonIgnore
。很高兴知道@JsonProperty(access=JsonProperty.access.WRITE_)和@JSONCreator在更新时是否不起作用
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;