刚才遇到一个问题,刚刚解决,觉得有必要记录一下。
问题是这样的:后台传到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 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的问题,于是最后终于想到用以上办法解决。
唉,其实就是.和[]的问题,还好,最终还是解决了!效果图如下:
转载于:https://blog.51cto.com/dyq0908/780689