我有一个从服务器发送到服务器的用户对象.当我发送用户对象时,我不想向客户端发送散列密码.因此,我在password属性上添加了@JsonIgnore,但这也阻止了它被反序列化到密码中,这使得用户在没有密码时很难注册.

我怎么能只得到@JsonIgnore来应用于序列化而不是反序列化?我使用的是Spring JSONView,所以我无法控制ObjectMapper.

我试过的东西:

  1. @JsonIgnore添加到属性中
  2. 仅在getter方法上添加@JsonIgnore

推荐答案

具体如何操作取决于您使用的杰克逊版本.这在版本1.9左右发生了变化,在此之前,您可以通过在getter中添加@JsonIgnore来实现这一点.

你已经试过了:

仅在getter方法上添加@JsonIgnore

为此,and also将JSON"password"字段名的特定@JsonProperty注释添加到对象密码的setter方法中.

最近版本的Jackson为JsonProperty添加了READ_ONLYWRITE_ONLY个注释参数.所以你也可以这样做:

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

文档可以在here页找到.

Java相关问答推荐

Java同步小服务器

如何用Java表示C++类以通过FFI使用?

如何在Java中对自定义协议进行主机名验证?

使用hibiter中特定字段的where条款自定义映射

Java 8 RDX-如何设置单个选项卡标题文本的 colored颜色

Java WireMock定义存根在Cucumber并行执行的多线程测试中失败

ittext pdf延迟签名,签名无效

XPages-在第二次点击按钮之前延迟

为什么在枚举中分支预测比函数调用快?

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

不推荐使用的Environment.getExternalStorageDirectory().getAbsolutePath()返回的值不同于新的getExternalFilesDir(空)?

如何使用值中包含与号的查询参数创建一个java.net.URI

无法使用Java&;TestContainers获取AWS SQS队列的属性

SpringBoot Kafka自动配置-适用于SASL_PLAYTEXT的SSLBundle 包,带SCRAM-SHA-512

内存和硬盘中的Zip不同,这会导致下载后的Zip损坏

在settings.gradle.kts和Build.gradle.kts中使用公共变量

垃圾回收器是否真的删除超出作用域的对象?

如何在Record Java中使用isRecord()和RecordComponent[]?

持续时间--为什么在秒为负数的情况下还要做额外的工作?

Java HashMap保留所有时间复杂性