Jas*_*zek 5 serialization json playframework
在Play框架中,我有一些模型,其中的字段是对其他模型的对象引用.当我使用renderJSON时,我不希望包含这些对象引用.目前,根据我的需要,我创建了一个单独的视图模型类,其中包含我想要的字段,并在控制器中根据需要创建此视图类的实例.理想情况下,我希望能够使用模型类本身,而无需编写视图类.
有没有办法注释一个字段,以便在使用renderJSON时不会序列化?
Joh*_*uer 11
因为Play使用Gson进行Json序列化,你可以尝试以下方法:
public static void test()
{
Object foo = new SomeObject("testData");
Gson gson = new GsonBuilder()
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
.create();
renderJSON(gson.toJson(foo));
}
Run Code Online (Sandbox Code Playgroud)
现在标记为瞬态的每个字段都不会被序列化.还有另一种(更好的)方式.您可以使用com.google.gson.annotations.Expose注释标记要序列化的每个字段.
public static void test()
{
Object foo = new SomeObject("testData");
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.create();
renderJSON(gson.toJson(foo));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3186 次 |
| 最近记录: |