Struts2仅对JSON结果使用特定的变量对象(不是所有操作变量)

Struts2仅对JSON结果使用特定的变量对象(不是所有操作变量),json,struts2,Json,Struts2,假设我的Struts映射返回一个JSON字符串 <action name="retrieveJson" method="retrieveJson" class="myapp.WebServiceAction"> <result type="json"> <param name="contentType">text/plain</param> </result>

假设我的Struts映射返回一个JSON字符串

    <action name="retrieveJson" method="retrieveJson" class="myapp.WebServiceAction">
        <result type="json">
            <param name="contentType">text/plain</param>
        </result>       
    </action>
回归成功是错误的吗?我只想要在这个方法中设置的JSON变量。现在,它正在归还所有3辆车

{
  "publicationRecords" : ..,
  "reviewRecords" : null,
  "customRecords" : null
}
预期:

{"publicationRecords" : .. }

为此,您可以使用2个属性。
excludeNullProperties
includeProperties
仅用于序列化所需字段。另外,
includeProperty
允许在不希望序列化完整对象内容的情况下使用正则表达式

<result type="json">
  <param name="includeProperties">
    ^entries\[\d+\].clientNumber,
    ^entries\[\d+\].scheduleNumber,
    ^entries\[\d+\].createUserId
  </param>
</result>

^条目\[\d+\].clientNumber,
^条目\[\d+\].scheduleNumber,
^条目\[\d+\].createUserId

是官方文档。

我想我找到了解决方案,它是
excludeNullProperties
excludeProperties
名称。它也在插件文档中:/这通常是开始寻找文档的好地方。不相关,但是为什么要将响应设置为
text/plain
,而不是指示它是JSON?谢谢;我还有一个问题,也许你可以回答,我在文档中搜索了一下,但找不到一个清晰的答案:如何在Struts 2.3.14应用程序中定制生成的JSON,我们无法定义自定义JsonWriter。
{"publicationRecords" : .. }
<result type="json">
  <param name="includeProperties">
    ^entries\[\d+\].clientNumber,
    ^entries\[\d+\].scheduleNumber,
    ^entries\[\d+\].createUserId
  </param>
</result>