Struts2的json数据的访问

action中:
	private  List<Admins> entities;
	private Admins admin;
	public Admins getAdmin() {
		return admin;
	}
	public List<Admins> getEntities() {
		return entities;
	}
	public String  execute(){
		AdminsService asi = new AdminsServiceImpl();
		entities = asi.getObjects(Admins.class);
		admin  = (Admins) asi.findObjectById(Admins.class, 1);
	}

配置文件中的内容为
形式1:
<result type="json"> 
	<param name="root"></param> 
</result>
测试的结果为:
{"admin":
{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"},
"entities":
[{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"},
{"address":null,"cellPhone":null,"email":null,"id":2,"password":"ssssssss2","realName":"sss2","role":null,"sex":null,"userName":"redarmy2"}, {"address":null,"cellPhone":null,"email":null,"id":6,"password":"ssssssss6","realName":"sss6","role":null,"sex":null,"userName":"redarmy6"},
{"address":null,"cellPhone":null,"email":null,"id":7,"password":"ssssssss7","realName":"sss7","role":null,"sex":null,"userName":"redarmy7"},
{"address":null,"cellPhone":null,"email":null,"id":8,"password":"ssssssss8","realName":"sss8","role":null,"sex":null,"userName":"redarmy8"},
{"address":null,"cellPhone":null,"email":null,"id":9,"password":"ssssssss9","realName":"sss9","role":null,"sex":null,"userName":"redarmy9"},
{"address":null,"cellPhone":null,"email":null,"id":3,"password":"ssssssss3","realName":"sss3","role":null,"sex":null,"userName":"redarmy3"},
{"address":null,"cellPhone":null,"email":null,"id":4,"password":"ssssssss4","realName":"sss4","role":null,"sex":null,"userName":"redarmy4"},
{"address":null,"cellPhone":null,"email":null,"id":5,"password":"ssssssss5","realName":"sss5","role":null,"sex":null,"userName":"redarmy5"}]}
因为前面返回的是一个admins对象还有一个集合对象,而且又没有设置要按哪个根节点元素去遍历。所以会把所有的信息都显示出来,返回的不是真正的json数据

形式2:
以entities为根去遍历,所有返回的是真正的json数据,会显示出自动提示效果
<result type="json"> 
	<param name="root">entities</param> 
</result>

形式3:
<result type="json">
	<param name="root">entities,admin</param>
</result>
响应为
{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"}
因为设置了两个根节点,所有第一个根节点会被第二个根节点顶替,会按照第二个参数去设置,但返回的不是真正的json数据,所有不会出现自动提示功能

形式4:
<result type="json">
	<param name="includeProperties">entities</param>
</result> 
响应为:
{"entities":[]}
includeProperties会包含参数作为属性,所以查不到内容

形式5:
<result type="json">
	<param name="includeProperties">entities\[\d+\]\.realName</param>
</result> 
响应为:
{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},
{"realName":"sss9"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"}]}
includeProperties是包含参数作为作为属性,entities\[\d+\]\.realName是以entities作为根节点去遍历下面的realName,返回的不是真正的json数据

形式6:
<result type="json">
	<param name="includeProperties">^entities\[\d+\]\.realName</param>
</result>
响应为:
{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},
{"realName":"sss9"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"}]}
^:匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
原因同上,不过由于list集合的根节点本来就是entities,所有全部匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值