不知道是不是JSON数组有问题,我现在后台传送过来的数据格式为:
"{'username':王国军','names':'王先生'}"  
前台的JS,JSON获取方式为:            $.get("ListLineMen.aspx?t=" + new Date().getTime(), function (data) {
                var listLineMen = eval(data);  
                var a = listLineMen;//得到的结果是:{'username':王国军','names':'王先生'}
                alert(a.username); //得到的结果是:undefined
                var listLineMenHtml = "";
                for (var i = 0; i < listLineMen.length; i++) {
                    listLineMenHtml = listLineMenHtml + "<a href='javascript:;' v='" + listLineMen[i].username + "'>" + listLineMen[i].names + "</a>";
                }
                alert({'username':'王国军','names':'王先生'}.username);//直接测试得到的结果为:王国军
                $("#priceLinkMenNex").html(listLineMenHtml);
 
                //alert(listLineMenHtml)
                loadStatus++;
            });
alert( listLineMen)处能够获取到后台传来的数据,但是listLineMen[i].username 和listLineMen[i].names处提示:undefined我感觉是数据格式有问题,因为这段代码我是从别人那边抄过来的,正常的。如果是数据格式有问题,那么根据上面这个代码,这个数据的格式应该是什么样的? 

解决方案 »

  1.   

    a是个数组吧
     alert(a[0].username); 这样呢
      

  2.   

    var listLineMen = eval("("+data+")"); 
      

  3.   

    1、2楼的方法都试过N次了,都一样,返回:undefined
      

  4.   

    "[{"username":"王国军","names":"王先生"}]"  
    json格式
      

  5.   


    这个是我之前在别的板块贴的内容,确实少了个单引号。加上单引号后,还是undefined
      

  6.   


    采用这个格式后,JS处报错,var listLineMen = eval(data); 提示:缺少“:”。
      

  7.   

    问题已解决,估计是.net的一个特性。
    换其他语言环境,正常通过。
    不管你是否数据格式传对与否,通过.net必须eval("("+data+")")否则报错要么提示undefined 。                var listLineMen = eval("("+data+")");//通过解析
                    //var listLineMen = eval(data);//报错,提示缺少“)”