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