刚才遇到一个问题,刚刚解决,觉得有必要记录一下。

问题是这样的:后台传到jsp上一个将List转化成JSON串的字符串,而原先的List中放入的是Map元素。将这个JSON串打印出来结果如下:

[{"f0":"7908","f1":"经济"},{"f0":"7808","f1":"经济"},{"f0":"7505","f1":"经济"},{"f0":"7805","f1":"经济"},{"f0":"8002","f1":"经济"}]

现在要在前台将List中的每个Map的key对应的每个value取出来形成表格,以下是代码:

 
   
  
  • var preTable = $("#previewTable");
var fieldsArray = fields.split(", ");  
var tr = "<tr valign='middle' height='18' align='center' class='preTableTr'>";
for (var i=0; i<fieldsArray.length; i++) {
tr += "<td>" + fieldsArray[i] + "</td>";
}
tr += "</tr>";
preTable.append(tr); $.ajax({          type:  "POST" ,   cache:  false ,          url:  "CertificateTask!sampleData.action" ,          data:  "urlType="  + fields,          success:  function (msg){           if ("" != msg ) {               var  ObjectArray =  new  Array();               ObjectArray = eval( '(' +msg+ ')' );               for  ( var  p=0; p<ObjectArray.length; p++) {                  var  temTr =  "<tr valign='middle' height='18' align='center' class='preTableTr'>" ;                   for  ( var  j=0; j<fieldsArray.length-1; j++) {                       var  temNum =  'f'  + j;                       temTr +=  "<td>"  + ObjectArray[p][temNum] +  "</td>" ;                    }                    temTr +=  "</tr>" ;                    preTable.append(temTr);            }            }         }   });  

用到了jquery的Ajax提交,fieldsArray是盛放表格字段名称的一个数组,先将返回回来的JSON字符串msg转化为一个数组对象(ObjectArray,实际上就是List),然后遍历这个ObjectArray,刚开始在第二个for循环是这样取出map的value的:

ObjectArray[p].temNum但是发现这样会出现取值为undefined的问题,于是最后终于想到用以上办法解决。

唉,其实就是.和[]的问题,还好,最终还是解决了!效果图如下:

 

效果图