我正在使用 Jackson 来序列化和反序列化 RESTful API 的数据。我想要一个 REST 资源(/comments
),允许发布评论以及获取评论列表。
这是发布内容的(简化的)示例/comments
.
{"text":"Text","author":"Paul","email":"[email protected] /cdn-cgi/l/email-protection"}
这是结果GET /comments
应该看起来像:
[{"text":"Text","author":"Paul","emailHash":"76w0kjKP9HpsdhBjx895Sg=="}]
由于电子邮件地址不应该对任何人可见,因此我决定在响应中仅返回电子邮件地址的 MD5 哈希值。
我创建了一个简单的 POJO 类Comment
具有带有 getter 和 setter 的字段text
, author
, email
, and emailHash
.
现在,当我序列化结果时,我得到的结果如下:
[{"text":"Text","author":"Paul","email":null,"emailHash":"76w0kjKP9HpsdhBjx895Sg=="}]
但我真的不喜欢email
返回为null
这里。它根本不应该被包括在内。
使用注释@JsonIgnore
该字段在反序列化时也会忽略它。我是否必须创建两个类CreationComment
and ResultComment
具有超一流的Comment
共享公共字段还是有办法避免创建额外的类?