gpt4 book ai didi

json - 防止某些字段被序列化

转载 作者:行者123 更新时间:2023-12-04 17:04:54 26 4
gpt4 key购买 nike

在 Play 框架中,我有一些模型的字段是对其他模型的对象引用。当我使用 renderJSON 时,我不希望包含这些对象引用。目前,根据我的需要,我创建了一个单独的 View 模型类,其中包含我想要的字段,并在 Controller 中根据需要创建此 View 类的实例。理想情况下,我希望能够使用模型类本身而不必编写 View 类。

有没有办法注释一个字段,以便在使用 renderJSON 时它不会被序列化?

最佳答案

因为 play 使用 Gson 进行 Json 序列化,您可以尝试以下操作:

public static void test()  
{
Object foo = new SomeObject("testData");
Gson gson = new GsonBuilder()
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
.create();
renderJSON(gson.toJson(foo));
}

现在每个标记为 transient 的字段都不会被序列化。还有另一种(更好的)方式。您可以使用 com.google.gson.annotations.Expose用于标记要序列化的每个字段的注释。
public static void test()  
{
Object foo = new SomeObject("testData");
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.create();
renderJSON(gson.toJson(foo));
}

关于json - 防止某些字段被序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com