首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jackson:如何防止字段序列化

Jackson:如何防止字段序列化
EN

Stack Overflow用户
提问于 2012-02-02 21:10:42
回答 9查看 146K关注 0票数 176

我有一个带有密码字段的实体类:

代码语言:javascript
运行
复制
class User {
    private String password;

    //setter, getter..
}

我希望在序列化过程中跳过此字段。但它仍然应该能够反序列化。这是必需的,以便客户端可以向我发送新密码,但不能读取当前密码。

我该如何和Jackson一起完成这个任务呢?

EN

回答 9

Stack Overflow用户

发布于 2012-02-02 21:51:12

您可以将其标记为@JsonIgnore

在1.9版本中,您可以为getter添加@JsonIgnore,为setter添加@JsonProperty,以使其反序列化但不序列化。

票数 198
EN

Stack Overflow用户

发布于 2012-10-03 12:09:51

为了说明StaxMan所说的,这对我是有效的

代码语言:javascript
运行
复制
private String password;

@JsonIgnore
public String getPassword() {
    return password;
}

@JsonProperty
public void setPassword(String password) {
    this.password = password;
}
票数 101
EN

Stack Overflow用户

发布于 2013-02-21 23:48:03

最简单的方法是注释getter和setter。

以下是修改后的原始示例,以排除纯文本密码,但随后注释了一个新方法,该方法只是将密码字段作为加密文本返回。

代码语言:javascript
运行
复制
class User {

    private String password;

    public void setPassword(String password) {
        this.password = password;
    }

    @JsonIgnore
    public String getPassword() {
        return password;
    }

    @JsonProperty("password")
    public String getEncryptedPassword() {
        // encryption logic
    }
}
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9112900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档