var jsonObj=${json};改成 var jsonObj=eval(json)

解决方案 »

  1.   

    var index=i*cellCount+j;
    如果这里计算出来定的索引值大于数组的最大索引值就会出现这个问题。
    这个地方你需要重新写公式计算
      

  2.   

    你第二个循环是为了拼出td的html
    如果知道json的格式的话不需要循环直接jsonObj[i].personId取值
      

  3.   

    这个${json}是el表达式,不是jquery
      

  4.   

    现在情况是jsonObj[i].personId能取到值,但是console确报jsonObj[i]未定义,包括我用jsonObj[0]都报未定义错误
      

  5.   


    eval用这个再转一次。
    用var jsonObj=${json};
    var obj = eval ("(" + jsonObj + ")");
    转了也不好用哦,报错
    SyntaxError: missing ] after element list
    ([object Object],[object Object],[object Object],[object Object],[obj
      

  6.   

    用var jsonObj=${json};
    var obj = eval (jsonObj);
    这样 因为你的字符串已经有[]了 
      

  7.   

    你这个var jsonObj=${json};用法有问题吧,如楼上说的用eval$(function () {
            //绘制表格
            var json = '[{ "id": null, "personId": 10250, "permissionTypeId": 5, "permissionValue": 0 }, { "id": null, "personId": 10250, "permissionTypeId": 6, "permissionValue": 1}]';
            var jsonObj=eval(json);
            var count = jsonObj.length;
            var rowCount = Math.ceil(count / 4);
            var cellCount = 4;
            var table = $("<table cellpadding=\"0\" cellspaceing=\"0\" style=\"margin-left:20px;\" width=\"750\">");
            table.appendTo($("#createtable"));
            for (var i = 0; i < count; i++) {
                var tr = $("<tr></tr>");
                tr.appendTo(table);
                // for(var j=0;j<cellCount;j++)
                // {
                //    var index=i*cellCount+j;
                var td = $("<td><input type='checkbox' value='" + jsonObj[i].permissionValue + "' id='" + jsonObj[i].permissionTypeId
                               + "'/><label>" + jsonObj[i].permissionValue + "</label></td>");
                td.appendTo(tr);
                tr.appendTo(table);
                // }
            }
            $("#createtable").append("</table>");        //初始化权限值
            $("input[type='checkbox']").each(function () {
                var permission = $(this).attr("value");
                if (permission == 1) {
                    console.log($(this).attr("checked"));
                    $(this).attr("checked", "checked");
                }
            });
        });
      

  8.   

    <script language="javascript">
    var s=eval([{"id":null,"personId":10250,"permissionTypeId":5,"permissionValue":0},{"id":null,"personId":10250,"permissionTypeId":6,"permissionValue":1}]);
    alert(s.length);
    alert(s[0]["personId"]);
    </script>我在我这测试都没问题