TreeLoader扩展,支持josn-plugin返回的json对象中包含的数组值

Struts2的josn插件 josn-plugin 对我们开发extjs程序很方便,但是他每次返回的数据格式都是以一个对象的方式返回的,对象中可以包含其他格式的数据,比如数组.

这就是一般的返回格式

Js代码

{"root":[{"address":"shenzhen","company":"Bank of China","manager":"true","name":"Jack","password":"a","userid":"8ad08c8323eeb3ba0123eeb3c6e20001","username":"a","zip":"518000"},{"address":"dongjing","company":"Bank of Japan","manager":"false","name":"Jack Cheng","password":"b","userid":"8ad08c8323eeb3ba0123eeb3c6e20002","username":"b","zip":"518000"}],"totalProperty":2}

struts2后台配置为

Xml代码

<action name="getUsers" class="userAction" method="getUsers">
   <result type="json">
     <param name="root">
     page
     </param>
     <param name="excludeNullProperties">
     true
     </param>
     <param name="includeProperties">
     root.*,totalProperty 
     </param>
   </result>
</action>

而我们做树(TreePanel)的时候需要服务器返回的数据是数组对象的形式.如下

Js代码

[{"address":"shenzhen","company":"Bank of China","manager":"true","name":"Jack","password":"a","userid":"8ad08c8323eeb3ba0123eeb3c6e20001","username":"a","zip":"518000"},{"address":"dongjing","company":"Bank of Japan","manager":"false","name":"Jack Cheng","password":"b","userid":"8ad08c8323eeb3ba0123eeb3c6e20002","username":"b","zip":"518000"}]

但是json-plugin不支持直接返回这种格式,所以我们可以修改一下TreeLoader的处理函数

Js代码

//TreeLoader扩展,支持josn-plugin返回的json对象中包含的数组值
Ext.tree.JsonPluginTreeLoader = function (config) {
   this.rootName = 'root';
   Ext.tree.JsonPluginTreeLoader.superclass.constructor.call(this, config);
}
Ext.extend(Ext.tree.JsonPluginTreeLoader, Ext.tree.TreeLoader, {
   processResponse: function (response, node, callback) {
     var json = response.responseText;
     try {
       var o = response.responseData || Ext.decode(json);
//在原代码基础上增加了下面处理---------------------
       if (Ext.type(o) == 'object') {//如果返回的是对象则获取他的root部分,rootName是可以在使用的时候配置的
         o = o[this.rootName || 'root'];
       }
//--------------------------------------------------
       node.beginUpdate();
       for (var i = 0, len = o.length; i < len; i++) {
         var n = this.createNode(o[i]);
         if (n) {
           node.appendChild(n);
         }
       }
       node.endUpdate();
       this.runCallback(callback, scope || node, [node]);
     } catch(e) {
       this.handleFailure(response);
     }
   }
});

时间: 2024-11-01 02:36:28

TreeLoader扩展,支持josn-plugin返回的json对象中包含的数组值的相关文章

django-使用MongoEngine Pymongo使用Django不能返回的JSON对象?

问题描述 使用MongoEngine Pymongo使用Django不能返回的JSON对象? 所以我试图返回一个JSON对象的一个项目.我已经花了几个小时试图让Django的只是返回的JSON. 继承人,我们一直在努力的观点:def json(request, first_name): user = User.objects.all() #user = User.objects.all().values() result = simplejson.dumps(user, default=json

js+ajax处理java后台返回的json对象循环创建到表格的方法_AJAX相关

本文实例讲述了js+ajax处理java后台返回的json对象循环创建到表格的方法.分享给大家供大家参考,具体如下: //注:LO是表格的id: 需要自己创建表头, n行,9列的表格: var tab_id; function varify(cardinno) { tab_id=document.getElementById("Layer1"); displayDiv(); tab_id.style.display="none"; var url="get

js+ajax处理java后台返回的json对象循环创建到表格的方法

本文实例讲述了js+ajax处理java后台返回的json对象循环创建到表格的方法.分享给大家供大家参考,具体如下: //注:LO是表格的id: 需要自己创建表头, n行,9列的表格: var tab_id; function varify(cardinno) { tab_id=document.getElementById("Layer1"); displayDiv(); tab_id.style.display="none"; var url="get

jquery获取JSON对象中数据的示例

 这篇文章主要介绍了jquery获取JSON对象中数据的示例,代码中有注释,大家参考使用吧    代码如下: $.ajax({             url: '这个地址要换成你自己的',             data: {S_CourseID: courseid , CurrTime : new Date().getTime()}, //加个时间戳,否则会不自动更新数据             dataType: 'json',             success: function

JavaScript 检查一个 JSON 对象中是否对存指这下的 Key

JavaScript 检查一个 JSON 对象中是否对存指定的 Key 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Actually, checking for undefined-ness

C#解析豆瓣返回的json对象,求助

问题描述 先给大家看一下我请求的回来的json数据.其中我只需要从蓝红处的部分数据进行提取.比如rating下面的average的数据.collect_count下的数据.然后我的方法是提取出subjects里的数据.最后提取subjects里的rating的时候取出数据如下字符串:"rating":{"max":10,"average":8.7,"stars":"45","min":0

求一个正则表达式 替换json字符串中的指定键值对

问题描述 {"name":"zhangsan","id":1042732,"type":"2","status":0,"password":"123456789"}如何把其中的type 键值替换成空 我需要一个{"name":"zhangsan","id":1042732,"st

Struts2登录成功返回一个jsp页面,失败返回一个json字符串遇到的问题

问题描述 ]在做一个登录模块action代码publicStringlogin(){Useruser=this.loginService.getUserByUsernameAndPassword(this.getModel().getUsername(),this.getModel().getPassword());if(user!=null){OAUtils.FromSession("user",user);return"SUCCESS";}else{this.m

Spring mvc 接收json对象_javascript技巧

本文通过代码实例介绍spring mvc 接收json数据的方法,具体详情如下所示: 接收JSON 使用 @RequestBody 注解前台只需要向 Controller 提交一段符合格式的 JSON,Spring 会自动将其拼装成 bean. 1)在上面的项目中使用第一种方式处理返回JSON的基础上,增加如下方法: Java代码 @RequestMapping(value="/add",method=RequestMethod.POST, headers = {"conte