Struts2返回JSON对象总结

Struts2返回JSON对象总结 (转)
转载自 日暮月垂

1.struts.xml中package 中extends="json-default"


<package name="json" namespace="/json" extends="json-default"> 
<package name="json" namespace="/json" extends="json-default">


2.result 中type="json"


<!-- 封装所有的get开首的办法 -->  
<result type="json" name="user">  
</result>  
 
<!-- 只包含user.id属性 -->  
<result type="json" name="user">  
    <param name="includeProperties">                 
        user.id  
    </param>  
</result>  
 
<!-- 返回user的JSON List列表,此中userInfosList是action中的一个List类型的属性,userInfosList [d+]. userName默示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)  
-->  
<result  name="success" type="json">  
<param name="includeProperties">  
    userInfosList[d+].userName,userInfosList[d+].password  
</param>  
</result>  
 
<!-- 不包含user属性 -->  
<result type="json" name="list">  
    <param name="excludeProperties">                 
        user  
    </param>  
</result>  
 
<!-- 根对象只包含user -->  
<result type="json">    
    <param name="root">    
        user  
    </param>    
</result>   
 
<!-- "root"对象中父类的field(属性)不会(会?) 默认存放到 JSON数据中,若是不想如许做,须要在设备时指定 ignoreHierarchy 为 false:  -->  
<result type="json">    
    <param name="ignoreHierarchy">false</param>    
</result>   
   
<!-- 封装所有的get开首的办法 --><result type="json" name="user"></result><!-- 只包含user.id属性 --><result type="json" name="user">    <param name="includeProperties">                       user.id    </param></result><!-- 返回user的JSON List列表,此中userInfosList是action中的一个List类型的属性,userInfosList [d+]. userName默示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)--><result  name="success" type="json"><param name="includeProperties"> userInfosList[d+].userName,userInfosList[d+].password</param></result><!-- 不包含user属性 --><result type="json" name="list">    <param name="excludeProperties">                       user    </param></result><!-- 根对象只包含user --><result type="json">      <param name="root">          user    </param>  </result> <!-- "root"对象中父类的field(属性)不会(会?) 默认存放到 JSON数据中,若是不想如许做,须要在设备时指定 ignoreHierarchy 为 false:  --><result type="json">      <param name="ignoreHierarchy">false</param>  </result>  


3.避免应用get开首的action办法
  在属性get办法上方加
  @JSON(name="newName")json中的名称
  @JSON(serialize=false) 该属性不被参加json
  @JSON(format="yyyy-MM-dd") 格局化日期

4.在action中赋值,返回对应的result字符串

申明:
为什么要用includeProperties或excludeProperties 参数:主如果为了过滤掉接口,pojo的set、list、其它对象等不须要的数据防止轮回取其它接洽关系对象或找不到接口。若是不设备,默认是处理惩罚action中的所有属性,若是action中有接口注入,json阻碍器可能找不到接口而返回不了成果,还有若是action中有一个对象,这个对象与很多多少对象都有接洽关系,json阻碍器会将相接洽关系的所有对象的属性全部转换成json格局,若是其它对象有list、set,其返回成果相当重大,有可能是死轮回而无法返回 。若是不消<param name="includeProperties">或其他体式格式进行json数据过滤,经由过程debug你会发明前台返回的json字符串,是把action中的所有属性全部转化成json字符串返回给客户端(包含service接口、pojo所有属性及有接洽关系的pojo。有时辰底子返回不了成果,也不报错,后台履行了,但前台履行不到callback function,这主如果因为找不到接口或者接洽关系的pojo太多,造成死轮回),一般景象下用的最多的就是root、includeProperties 和excludeNullProperties参数。当然还有其他的办法,如给pojo的属性加json注解。

总结:
action中避免应用get开首的action办法,去掉action中的接口的get办法。 为json类型的result设备includeProperties, excludeProperties等参数.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值