日期:2014-05-17  浏览次数:20624 次

如何在ext从后台返回的一维数组转换成二维数组
我后台的代码如下:
List<RateValueVo> list=new ArrayList();
list=cimCircuitServiceImpl.queryRateListByName(mrid);
String pingJson="[";
for(int i=0;i<list.size();i++){
RateValueVo vo=list.get(i);
pingJson+="{mrid:'"+vo.getMrid()+"',riskLevelName:'"+vo.getRiskLevelName()+"',statusLevelName:'"+vo.getStatusLevelName()+"'}";
if(i+1<list.size()){
pingJson+=",";
}
}
pingJson += "]";
JSONArray JsonArray = JSONArray.fromObject(pingJson);
String json = JsonArray.toString().substring(0, JsonArray.toString().length());

返回的json数据为:[{"mrid":"22551121","riskLevelName":"Ⅳ级","statusLevelName":"严重状态"},{"mrid":"22561655","riskLevelName":"Ⅳ级","statusLevelName":"严重状态"},{"mrid":"22549447","riskLevelName":"Ⅳ级","statusLevelName":"严重状态"}]

我前台的代码: url="<%=basePath%>queryRateByCircuit.action";
var param="mrid="+mrid;
Ext.Ajax.request({
method : 'POST', 
url: url,
success:function(response,option){
var jsonstr = eval('('+response.responseText+')'); //得到返回的数据
var len=jsonstr.length;

var rikLevel=new Array();
var mrid=new Array();
//var statusLevel=new Array();
var All=new Array(mrid,rikLevel)
for(var i=0;i<jsonstr.length;i++){
for(var j=0;j<jsonstr.length-1;j++){
All[i][j]=jsonstr[i];
//rikLevel[i][j]=jsonstr[i].riskLevelName;

}
}

//alert(rikLevel);
//alert(statusLevel);
},
failure: function(request){
alert("操作失败");
flag = false;
},
params: param});
  }
我现的想把后台返回的数组数据用js生成二维数组,如[22551121,Ⅳ级],[22561655,Ⅳ级],如果是这样的话,请问该怎么实现 ,谢谢!

------解决方案--------------------
不太明白你转换为二维数组的意义在哪里? 难道每个ID(以22551121为例) 还会对应多个级别吗? 如果想转换成二维数组 先定义Array 存储ID 再在每个 ID对应的Array上添加 每个ID对应的信息。(建议参考省市级联 这个是比较典型的)