1

为了我的游戏!应用程序我有一个 User.class

@Entity
public class User extends Model {

@Id
public String email;
public String name;
public String password;

public User(String email, String name, String password) {
  this.email = email;
  this.name = name;
  this.password = password;
}

...
}

每次我在 /user/{id}.json 上询问用户对象时,我都想防止发送密码字符串。怎么做?这是正常的用例还是有其他方法来处理它?

4

2 回答 2

0

您是否尝试过为您的 json 使用虚拟类?

像这样..这是您的用户模型

@Entity
public class User extends Model 
    {

     @Id
     public String email;
     public String name;
     public String password;

     public User(String email, String name, String password) {
     this.email = email;
     this.name = name;
     this.password = password;
    }
}

这将是您返回 json 值的 Dummy 类

public class UserDummy 
    {
     public String email;
     public String name;

     public UserDummy(string email) {
     models.User user = models.User.findById(email);
     this.email = user.email;
     this.name = user.name;
    }
}
于 2013-06-04T02:45:54.023 回答
0

Play 使用Jackson序列化为 Json,因此所有 Jackson 工具都可用。

要从 Json 序列化中排除某个字段,您可以使用注解对其进行@JsonIgnore注解。

在您的示例中:

import org.codehaus.jackson.annotate.JsonIgnore;

@Entity
public class User extends Model {

    @Id
    public String email;
    public String name;

    @JsonIgnore
    public String password;
    ...
}
于 2013-06-04T09:42:56.413 回答