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

在序列化过程中使用@JsonIgnore,而不是反序列化

夏奕
2023-03-14
问题内容

我有一个发送到服务器或从服务器发送的用户对象。发送用户对象时,我不想将哈希密码发送给客户端。因此,我添加@JsonIgnore了password属性,但这也阻止了将其反序列化为密码,这使得在没有密码的情况下很难注册用户。

我怎样才能只@JsonIgnore应用序列化而不是反序列化?我使用的是Spring JSONView,因此对的控制不多ObjectMapper

我尝试过的事情:

  • 添加@JsonIgnore到属性
  • @JsonIgnore仅添加getter方法

问题答案:

确切的操作方法取决于你使用的Jackson版本。围绕1.9版进行了更改,在此之前,你可以通过将其添加@JsonIgnore到getter中来实现。

你尝试过的:

仅在getter方法上添加@JsonIgnore

执行此操作,然后将@JsonPropertyJSON“密码”字段名称的特定注释添加到对象密码的setter方法中。

(Jackson)的最新版本已为添加READ_ONLYWRITE_ONLY注释参数JsonProperty。因此,你还可以执行以下操作:

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


 类似资料:
  • 问题内容: 我有一个发送到服务器或从服务器发送的用户对象。发送用户对象时,我不想将哈希密码发送给客户端。因此,我添加了password属性,但这也阻止了将其反序列化为密码,这使得在没有密码的情况下很难注册用户。 我怎样才能只应用序列化而不是反序列化?我使用的是Spring JSONView,因此对的控制不多。 我尝试过的事情: 添加到属性 仅添加getter方法 问题答案: 确切的操作方法取决于你

  • 我有一个用户对象,它被发送到服务器和从服务器发送。当我发出user对象时,我不想将散列密码发送给客户端。因此,我在password属性中添加了,但这也阻止了它反序列化为密码,这使得用户在没有密码时很难注册。 如何才能只让应用于序列化而不应用于反序列化?我使用的是Spring JSONView,所以我对没有太多的控制权。 将添加到属性 仅在getter方法上添加

  • 问题内容: 我有一个发送到服务器或从服务器发送的用户对象。发送用户对象时,我不想将哈希密码发送给客户端。因此,我添加了password属性,但是这也阻止了将其反序列化为密码,这使得在没有密码的情况下很难注册用户。 我怎样才能只应用序列化而不是反序列化?我使用的是Spring JSONView,因此对的控制不多。 我尝试过的事情: 添加到属性 仅添加getter方法 问题答案: 确切的操作方法取决于

  • 我在序列化和反序列化同一JVM中的对象列表时遇到问题。确切地说,现在我的对象与对象具有相同的引用,它有以下规则: 现在在我的对象列表反序列化之后,在某个时候字母表引用不匹配。我用以下方法检查了一下: 得到了以下结果 现在看看VMId,既然它们是相同的,那么它不应该是相同的对象吗,就像上面的逻辑一样?谢谢你的帮助。

  • 我读了Doug Stevenson写的这些博客文章,第1部分,第2部分,第3部分。在第二部分,他说 Realtime Database SDK使将DataSnapshot转换为JavaBean样式的对象变得非常容易 并提到我们可以使用这行代码将DataSnapshot反序列化为HotStock对象(一个JavaBean类) HotStock stock=datasnapshot.getValue(

  • 问题内容: 我偶然了解了Java序列化。我读过许多文档和书籍,其中静态变量和瞬态变量无法在Java中序列化。我们声明一个serialVersionUid如下。 如果静态变量未序列化,那么在反序列化过程中我们经常会遇到异常。 其中从反序列化对象中提取serialVersionUID并将其与已加载类的serialVersionUID进行比较。 据我所知,我认为如果静态变量不能序列化。毫无例外。我可能仍