java - 在Struts的每个方法中自定义序列化为json的内容

标签 java json serialization struts2

我有一个 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() 中,我只需要 foo1foo2,所以我想避免 foo3 的序列化 就在这个方法中
  • 在方法 list2() 中,我只需要 foo1foo3,所以我想避免 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/

相关文章:

Java:使用 FileChannel 写入文件会使文件缩小?

javascript - 如何在发送 ExtJS 之前更改 JSON 对象

.net - 使自定义 .NET 异常可序列化的正确方法是什么?

ios - JSONKit(或类似)生成的对象内的 NSNull 值

java - 为类路径设置文件夹

java - Hibernate JPA 元模型——引用嵌套属性?

java - 代理和纪念品模式

javascript - Angular ng-repeat 无法正确渲染数据

java - Android 中简单 JSON 解析的输出问题

java - 使用单例设计模式进行序列化