Code Bye

关于Struts2的JSON插件中的includeProperties属性问题

我用Struts2的JSON插件默认的JSON转换规则,用来Json化我需要用的属性。返回JSON格式很标准,”datas”对应一个List,大致是这样的:
{“datas”:[{Object},{Object},{Object}…]}

我的Object对象有以下属性:
private Integer youkejingdianpingjiaid;
private AppYouKe appYouKe;
private TeSeJingDian teSeJingDian;
private Date pingjiatime;
private String pingjiatext;

比如我想在只需要2个普通属性,那么这样配置是可以的:
<result type=”json” name=”success”>
<param name=”root”>dataMap</param>
<param name=”includeProperties“>
datas\[\d+\]\.pingjiatime,datas\[\d+\]\.pingjiatext   //只需要Json化pingjiatime和pingjiatext
</param>
</result>

得到的返回的Json字符串是:
{“datas”:[
{“youkepingjiatext”:”OKokokoko”,”youkepingjiatime”:”2014-08-09 12:19:02″},{“youkepingjiatext”:”Nononono”,”youkepingjiatime”:”2014-08-09 13:38:22″}
]
}
这样没有问题,但是我还想得到关联对象里面的部分属性,比如我要AppYouKe appYouKe里面的1个属性,那么这样配置是得不到的:datas\[\d+\]\.appYouKe.property (×)
但是通过datas\[\d+\]\.appYouKe.* 又可以得到关联对象的全部属性,可是我不需要全部的属性。求助大神帮忙。


200分
感觉和OGNL表达式的匹配规则有关,如果要匹配datas\[\d+\]\.appYouKe.property,此处取property为模糊匹配,则必须先匹配datas\[\d+\]\.appYouKe.* ,不然datas\[\d+\]\.appYouKe.property匹配不到。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于Struts2的JSON插件中的includeProperties属性问题