ext中对json数据的处理解析
2010-10-22 19:16
302 查看
(注:ext做客户端接收数据,返回的json数据必须要有存放载体,也就是ext中的Ext.data.Store)
1、Ext.form.ComboBox() 控件:(将json格式数据信息显示到下拉框中)
说明:本例采用的json.jar 2.2.1-version(下同)
前台:
后台:
这里返回的json字符串如下:
{"results":2,"rows":[{"desc":"选项一","code":"101"},{"desc":"选项二","code":"102"}]}
2、Ext.grid.GridPanel() 控件:(将json格式信息显示到GridPanel中)
说明:我这里说明的不是GridPanel而是里面的store,所以GridPanel里面的有些内蓉省掉了(如分页等,个人认为简单明了比较好)。
前台:
后台:
这里返回的json字符串如下:(这里只有一条数据)
{"results":1,"jsonObjs":[{"id":"11101","name":"xiesj","address":"nj","sex":"man"}]}
3、Ext中作form表单提交时返回的json数据:(主要用于判断后台提交是否成功)
说明:下面是一个保存时的表单提交对返回json数据的处理解析,这个比较简单
前台:
后台:
这里返回的json字符串如下:
{success:true,info:'success'} 或 {success:true,info:'false'}
4、Ajax请求提交时返回的json数据:(接收返回信息)
说明:这里对返回过来的json数据,用eval函数做了处理
前台:
后台:
这里返回的json字符串如下:
{"message":"指定月份没有对应抄表数据!"}或{"message":"指定待计算月份不准确!"}或{"message":"计算完成!"}
1、Ext.form.ComboBox() 控件:(将json格式数据信息显示到下拉框中)
说明:本例采用的json.jar 2.2.1-version(下同)
前台:
var combobox = new Ext.form.ComboBox({ id:'type', name:"type", editable:false, readOnly:true, mode:'remote', emptyText:"请选择", store:new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'TestAction!test.action'//请求路径 }), reader: new Ext.data.JsonReader({ root: 'rows', totalProperty: 'results', fields:['code','desc'] }), autoLoad:true }), valueField:'code', //逻辑列名的实际值(tId) displayField:'desc', //逻辑列名的显示值(tName) triggerAction:'all', //是否开启自动查询可选:all(不开启)、query(开启) labelSeparator:'', width:120 });
后台:
List<Obj> list = testService.loadType(condition);//这是方法返回的list数据,根据需要而定,在此这是举例说明问题. JSONObject json = new JSONObject(); JSONArray jsonObjects = new JSONArray(); int i=0; Iterator<Obj> it = list.iterator(); while(it.hasNext()){ JSONObject jsonObject = new JSONObject(); Obj obj = it.next();//这里的Obj对象只是list中的存放的对象类型 jsonObject.put("desc", obj.getTypeDesc()); jsonObject.put("code", obj.getTypeCode()); jsonObjects.put(i++, jsonObject); } json.put("results", list.size()); json.put("rows", jsonObjects); outJsonString(json.toString());
这里返回的json字符串如下:
{"results":2,"rows":[{"desc":"选项一","code":"101"},{"desc":"选项二","code":"102"}]}
2、Ext.grid.GridPanel() 控件:(将json格式信息显示到GridPanel中)
说明:我这里说明的不是GridPanel而是里面的store,所以GridPanel里面的有些内蓉省掉了(如分页等,个人认为简单明了比较好)。
前台:
var grid = new Ext.grid.GridPanel({ autoWidth:true, height:300, cm:cm, //列模型(这里就省了,注意:列模型形式一定要和返回的数据个数及名称一致) loadMask:{msg:'正在加载中,请稍后..'},//加载时显示的等待信息 store:store }); var store = new Ext.data.Store({ proxy:new Ext.data.HttpProxy({url:'TestAction!test.action'}), reader:new Ext.data.JsonReader({ totalProperty:'results', root:'jsonObjs' }, [ {name:'id'}, {name:'name'}, {name:'sex'}, {name:'address'} ] ), softInfo:{field:'id',direction:'DESC'}//排序 });
后台:
List<Users> list = testService.loadType(condition);//这里的方法说明同上 JSONObject json = new JSONObject(); JSONArray jsonObjects = new JSONArray(); int i=0; Iterator<Users> it = list.iterator(); while(it.hasNext()){ JSONObject jsonObject = new JSONObject(); Users user = it.next();//这里的Users对象就不多说了,同上 jsonObject.put("id",user.getId()); jsonObject.put("name", user.getName()); jsonObject.put("address", user.getAddress()); jsonObject.put("sex", user.getSex()); jsonObjects.put(i++, jsonObject); } json.put("results", list.size()); json.put("jsonObjs", jsonObjects); outJsonString(json.toString());
这里返回的json字符串如下:(这里只有一条数据)
{"results":1,"jsonObjs":[{"id":"11101","name":"xiesj","address":"nj","sex":"man"}]}
3、Ext中作form表单提交时返回的json数据:(主要用于判断后台提交是否成功)
说明:下面是一个保存时的表单提交对返回json数据的处理解析,这个比较简单
前台:
myFormPanel.form.submit({ //FormPanel的定义及设置就省了,简单明了最好! waitTitle:'请稍后', waitMsg:'正在保存数据,请稍后。。。', url:'TestAction!saveData.action', method:'POST', success:function(form,action){ if(action.result.info == 'success'){//这就是对json数据的解析 Ext.Msg.alert("提示框","保存成功!"); return; }else{ Ext.Msg.alert("提示框","保存失败!"); return; } }, failure:function(form,action){ Ext.Msg.alert("提示框","数据匹配错误,请重新填写!"); return; } });
后台:
String rslt_o = testService.save(condtions);//返回的值其实就两个:success和failure //String flag = "{success:true,info:'" + info.toString() + "'}"; //outJsonString(flag); outJsonString("{success:true,info:'" + info.toString() + "'}"); //拼装返回(以上注释中的形式也可)
这里返回的json字符串如下:
{success:true,info:'success'} 或 {success:true,info:'false'}
4、Ajax请求提交时返回的json数据:(接收返回信息)
说明:这里对返回过来的json数据,用eval函数做了处理
前台:
var resultObject = null; Ext.Ajax.request({ url:'testAction!test.action', method:'POST', success:function(result,request){ resultObject = eval('('+result.responseText+')'); Ext.Msg.alert('提示框',resultObject.message); return; }, failure:function(){ Ext.Msg.alert('提示框','操作失败!'); return; } });
后台:
String message = testService.test(map); JSONObject jsonObj_info = new JSONObject(); jsonObj_info.put("message", message); outJsonString(jsonObj_info.toString());
这里返回的json字符串如下:
{"message":"指定月份没有对应抄表数据!"}或{"message":"指定待计算月份不准确!"}或{"message":"计算完成!"}
相关文章推荐
- ext中对json数据的处理解析
- ext中对json数据的处理解析
- ext中对json数据的处理解析
- 如何把Ext.data.store里的数据一次性用JSON传给后台(添加了后台解析部分)
- 如何把Ext.data.store里的数据一次性用JSON传给后台(添加了后台解析部分)
- JavaScript如何处理解析JSON数据详解
- jquery 解析处理 json数据
- Java-json系列(二):用JSONObject解析和处理json数据
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
- Python数据解析 - json模块处理JSON数据
- SpringMVC,接受、处理Json,fastjson解析json,用Postman4发送json数据
- 关于Android解析json数据的一些处理代码
- Zp的Ext学习笔记(一)——坑爹的MVC(html中Extjs配置、proxy代理的前后台交互、json解析、后台处理传入json乱码)
- 使Ext的Template可以解析二层的json数据的方法
- jquery json xml关于解析两次json数据动态取值的处理方式
- iOS - Json解析数据精度丢失处理
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 用JSONObject解析和处理json数据
- 使Ext的Template可以解析二层的json数据的方法
- Mysql中的数据用 json_decode 解析返回null的一则处理方法