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

问题是这样的:后台传到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");
  1. 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);
  2. $.ajax({  
  3.        type: "POST",  
  4. cache: false,  
  5.        url: "CertificateTask!sampleData.action",  
  6.        data: "urlType=" + fields,  
  7.        success: function(msg){  
  8.         if("" != msg) {  
  9.             var ObjectArray = new Array();  
  10.             ObjectArray = eval('('+msg+')');  
  11.             for (var p=0; p<ObjectArray.length; p++) {  
  12.                var temTr = "<tr valign='middle' height='18' align='center' class='preTableTr'>";  
  13.                 for (var j=0; j<fieldsArray.length-1; j++) {  
  14.                     var temNum = 'f' + j;  
  15.                     temTr += "<td>" + ObjectArray[p][temNum] + "</td>";  
  16.                  }  
  17.                  temTr += "</tr>";  
  18.                  preTable.append(temTr);  
  19.          }  
  20.          }  
  21.       }  
  22. }); 
 

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

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

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

 

在js中取出对象中的值_JSON