Struts2仅对JSON结果使用特定的变量对象(不是所有操作变量)
假设我的Struts映射返回一个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>
<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>