Java 如何控制数据对象的哪些属性被序列化为Struts 2中的JSON响应?

Java 如何控制数据对象的哪些属性被序列化为Struts 2中的JSON响应?,java,json,struts2,Java,Json,Struts2,我已经使用struts很长一段时间了,但从来没有想到“json”响应类型是多么棒 我有一个要返回到客户端的对象的大列表。我在UI上只使用这些字段的一个子集(通常是“displayName”) 有没有办法将序列化为JSON的字段限制回客户端 我能想到的一个明显的方法是创建一个视图对象,它具有字段的子集。请在此推荐最佳做法。您可以使用json插件的exclude属性来排除您不想序列化的属性 <interceptor-ref name="json"> <param name="e

我已经使用struts很长一段时间了,但从来没有想到“json”响应类型是多么棒

我有一个要返回到客户端的对象的大列表。我在UI上只使用这些字段的一个子集(通常是“displayName”)

有没有办法将序列化为JSON的字段限制回客户端


我能想到的一个明显的方法是创建一个视图对象,它具有字段的子集。请在此推荐最佳做法。

您可以使用json插件的exclude属性来排除您不想序列化的属性

<interceptor-ref name="json">
  <param name="enableSMD">true</param>
  <param name="excludeProperties">
    login.password,
    studentList.*\.sin
  </param>
</interceptor-ref>

真的
login.password,
学生名单。*\.sin

有关更多详细信息,请参阅

您可以使用json插件的exclude属性来排除您不想序列化的属性

<interceptor-ref name="json">
  <param name="enableSMD">true</param>
  <param name="excludeProperties">
    login.password,
    studentList.*\.sin
  </param>
</interceptor-ref>

真的
login.password,
学生名单。*\.sin

有关更多详细信息,请参阅

在我的实践中,我发现使用JSON对象最简单的方法是GSON。有良好的文档记录和直观的使用。在许多情况下帮助了我

使用GSON很容易解决您的问题


在我的实践中,我发现使用JSON对象最简单的方法是GSON。有良好的文档记录和直观的使用。在许多情况下帮助了我

使用GSON很容易解决您的问题


Umesh,感谢您的快速回复。我想要的是某种注释方法。然而,上述解决方案也可以达到这一目的。我将等待更多答案,然后再将其标记为已接受。再次非常感谢@Gopal在使用“json”结果类型时,没有基于Struts 2注释的方法。您可以使用GSON,序列化为流,并使用Struts 2的“流”响应,尽管将序列化操作流返回给我感觉很奇怪——我没有考虑太多,但可能会。Umesh,谢谢您的快速响应。我想要的是某种注释方法。然而,上述解决方案也可以达到这一目的。我将等待更多答案,然后再将其标记为已接受。再次非常感谢@Gopal在使用“json”结果类型时,没有基于Struts 2注释的方法。您可以使用GSON,序列化为流,并使用Struts 2的“流”响应,尽管将序列化操作流返回给我感觉很奇怪——我没有考虑太多,但可能会。您看到的是@吗?这就是您看到的吗@