【问题标题】:How to specify map properties in Struts 2 JSON Plugin如何在 Struts 2 JSON 插件中指定地图属性
【发布时间】:2011-09-21 18:19:44
【问题描述】:

我正在使用 Struts 2 和 json 插件,struts.xml 文件中的属性映射通常令人沮丧,但我能够弄清楚它们。

我遇到了一种情况,我无法设置 includeProperties 来给我期望的结果。

我经常使用配置表达式

^itemList\[\d+\]\.id,
^itemList\[\d+\]\.name
....

这很好用。

在这种情况下,我想从地图而不是列表(或列表成员的子地图)返回数据

如果使用 *,则整个地图将正确打印,但我不想要地图元素中的所有数据。

^itemList\[\d+\]\map\.*

返回整个地图

我尝试了几种不同的格式,但都没有产生结果。

^itemList\[\d+\]\map\[\d+\]\.id
^itemList\[\d+\]\map\[\d+\]\.name

地图属性中没有返回任何内容

有人对限制地图内容的语法有任何好运吗?

谢谢 -斯科特

【问题讨论】:

    标签: json map struts2


    【解决方案1】:

    您不能将 'd' 它映射为整数。 试试这个^itemList\..*$

    【讨论】:

      【解决方案2】:

      1) 你的正则表达式是可疑的。请注意,在表达式“^itemList[\d+]\map[\d+].id”中,+d 指的是多一个数字,因此地图必须将数字作为键。如果这不是您想要的,那么“.+”可能更合适(一个或多个任意字符)。

      2) 将 Map 转换为 LinkedHashMap,然后将其视为列表。 (这个没测试过,可能不行)

      【讨论】:

      • 我确实在表达式中犯了几个错误,错过了几个“。”但你是正确的 +d 正在寻找一个数字。我尝试了几次其他表达式的迭代来表示 Map 的字符串键,但我没有尝试过。在这一点上,我创建了一个轻量级对象,我正在填充它来表示我的地图中的数据,这是最实用的方法。它需要一个额外的类并将一些配置移动到应用程序中的不同点,但它为我的目的产生了最好的结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多