隐藏JSON字段

3

我有一个Hibernate实体,作为参数传递给控制器,我想隐藏userID字段。我将其用于数据库操作,不需要将其显示为输入参数。

 @Entity
    @Table(name = "user_sessions")
    public class UserSession{

    @Column(name="uid")
    private Long userID;
    @Id
    @Column(name="access_key")
    private String accessKey;
    @Column(name="secret_key")
    private String secretKey;

    public Long getUserID() {
    return userID;
    }

    public void setUserID(Long s) {
        this.userID = s;
    }`

1
你可以尝试使用@JsonIgnore@JsonIgnoreProperties来注释userID - Roman Vottner
1个回答

2
你可以做类似以下的事情:
    @Entity
    @Table(name = "user_sessions")
    public class UserSession{

    @Column(name="uid")
    private Long userID;
    @Id
    @Column(name="access_key")
    private String accessKey;
    @Column(name="secret_key")
    private String secretKey;
    @JsonIgnore
    public Long getUserID() {
    return userID;
    }

    public void setUserID(Long s) {
        this.userID = s;
    }`

现在,如果您使用jackson,可以这样做:
ObjectMapper mapper = new ObjectMapper();   
String json =  mapper.writeValueAsString(userSession);

那么它将简单地忽略userId

或者您可以按照以下方式操作

    @Entity
    @Table(name = "user_sessions")
    @JsonIgnoreProperties( { "userID" })
    public class UserSession{

    @Column(name="uid")
    private Long userID;
    @Id
    @Column(name="access_key")
    private String accessKey;
    @Column(name="secret_key")
    private String secretKey;

    public Long getUserID() {
    return userID;
    }

    public void setUserID(Long s) {
        this.userID = s;
    }`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接