Java 将renderJSON与play framework一起使用时排除datamember

Java 将renderJSON与play framework一起使用时排除datamember,java,json,playframework,gson,Java,Json,Playframework,Gson,我需要用JSON呈现对象并将它们发送到客户端,但出于明显的原因,我需要排除电子邮件和密码等字段 我知道play使用GSON(google?),在调用renderJSON()方法时可以传递一个序列化器类。但是,我使用容器类同时呈现不同类型的类: public class JSONContainer { public List<User> userList; public List<Toy> toyList; } 公共类JSONContainer{ 公

我需要用JSON呈现对象并将它们发送到客户端,但出于明显的原因,我需要排除电子邮件和密码等字段

我知道play使用GSON(google?),在调用renderJSON()方法时可以传递一个序列化器类。但是,我使用容器类同时呈现不同类型的类:

public class JSONContainer {

    public List<User> userList;

    public List<Toy> toyList;

}
公共类JSONContainer{
公共列表用户列表;
公共列表toyList;
}
对于每个类,都可以创建一个序列化器类来实现GSON的
JsonSerializer
方法。但是,如果我像这样呈现一个JSONContainer对象:
renderJSON(container)
如何将序列化程序类传递给呈现方法

或者有没有一种更简单/更好的方法可以做到这一点?

看一看,它为您提供了两种选择

似乎最好的选择是使用@Expose(
com.google.gson.annotations.Expose
)注释来标记要由gson序列化的字段。然后,您需要使用GsonBuilder专门包含@Expose字段


或者,正如您在文章中提到的,您可以自己构建序列化。如果您查看,它将显示特定类类型是如何针对GsonBuilder注册的,因此在序列化过程中找到的任何对象都将使用特定的序列化器

我用了
@Expose
的方式。谢谢