当前位置: 首页 > 面试题库 >

Jackson的只写属性

郎聪
2023-03-14
问题内容

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

@JsonProperty
@JsonSerialize(using=NullSerializer.class)
public String getPassword() {
    return password;
}

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


问题答案:

使用@JsonIgnore上只是
吸气 getPassword,而不是使用NullSerializer。然后也用@JsonProperty("password")
二传手

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

例如,将以其他方式表示要序列化的属性(例如“ getValue”以建议属性“ value”)的“
getter”方法将被忽略,除非另一个注释定义了要使用的替代方法,否则不会输出任何此类属性。



 类似资料:
  • 下面是输出: 我的分级文件中的版本号:

  • 我使用JSON映射器从字符串中读取对象,然后从对象中写入字符串。我希望在写作时能够忽略一些属性。最简单的方法是什么?

  • 问题内容: 在Swift中,定义公共模式的常规方式是什么,在该模式中,属性是外部只读的,但可以由拥有该属性的类(和子类)在内部进行修改。 在Objective-C中,有以下选项: 在接口中将该属性声明为只读,并使用类扩展名在内部访问该属性。这是基于消息的访问,因此可以很好地与KVO,原子性等配合使用。 在接口中将该属性声明为只读,但在内部访问后备ivar。由于对ivar的默认访问受到保护,因此在类

  • 我有一个JSON属性文件,由用户手动更新。 我正在使用Jackson对象映射器将其映射到对象: 因为它是由用户手动更新的,所以他们可以使用任何套管;混合、大写、小写等。我找到的解决方案是,在读取文件时,我将转换为小写,如下所示: 在这之后,我使用Jackson映射到我的对象,这很有效。我对映射类使用小写成员名称。这是正确的方法还是有其他方法?

  • 我正在使用和进行一些操作,使用作为参数。 API定义了一个值,它是。无论我尝试什么,我的总是转换为小写()。 我用测试了我相同的代码,它可以工作...有人知道我的配置哪里错了吗?是针对这个财产名称的? 我尝试了以下注释: > @序列化名称(“援助”) @JsonProperty(“援助”) @JsonRawValue @jsonAlias