我有一个 Struts 2 应用程序,我正在使用 JSON 将信息发送到基于 Ajax 的客户端。现在负载模型发生了一些变化,变得非常复杂,应用程序也太慢了。所以我需要减少在每种情况下序列化的字段。所以我有这样的东西:
使用某些方法检索对象列表的一些操作:
public class FooAction{
private List<FooObject> fooObjects;
public List<FooObject> list1(){ ... };
public List<FooObject> list2(){ ... };
}
例如模型中的这个对象。
public class FooObject{
private String foo1;
private String foo2;
private String foo3;
private String foo4;
}
在该模型中,假设我在 Ajax 的任何调用中都不需要第 4 个属性,因此我添加了 JSON 注释以避免它被序列化。
public class FooObject{
private String foo1;
private String foo2;
private String foo3;
private String foo4;
@JSON(serialize=false)
public String getFoo4(){...}
}
问题是这样的。
- 在方法
list1()
中,我只需要foo1
和foo2
,所以我想避免foo3 的序列化
就在这个方法中 - 在方法
list2()
中,我只需要foo1
和foo3
,所以我想避免foo2 的序列化
就在这个方法中
所以问题是,自定义每个方法中应序列化的属性是否是一种简单的方法。如果我可以在 struts 的 xml 中自定义它,那就太好了:
<action name="list1" class="fooObject" method="list1">
<result type="json"/>
</action>
<action name="list2" class="fooObject" method="list2">
<result type="json"/>
</action>
谢谢
最佳答案
您可以查看 Customizing Serialization and Deserialization struts2
文档的一部分。我认为这会对您有所帮助。
关于java - 在Struts的每个方法中自定义序列化为json的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557600/