直接看代码:var responseJsonData = eval('('+response.responseText+')');//response.responseText是Ajax的返回值
alert(responseJsonData );//这行是对的,打印结果是:[object object],说明已经json数组已经转化为json对象了
alert(responseJsonData .length);//报错, 打印结果为undefined为什么???

解决方案 »

  1.   

    response.responseText 内容是啥?先贴出了。
      

  2.   

    为什么?
    我这里有另一个用jsp方式实现的工程,直接copy到tomcat下运行的话答应打印是一个数字
      

  3.   

    你要调用json的数组来做什么?    我昨天用了这个东西   你可以把json先付给一个数组 如   var str[]=responseJsonData   之后在打印出数组的长度就可以了  
      

  4.   

    esponseJsonData .length
    因为点前面多了个空格
      

  5.   


    response.responseText是啥?楼主你得帖出来。
    关注我的回复行不行!!!
      

  6.   

    response.responseText = "123"; // 数字没有length属性
    response.responseText = "{ a: 1234 }"; // object不指定也没有length属性
    response.responseText = "[]"; // 数组才有。
      

  7.   

    json数据类似于
    {"a":"1", "b":"2"};
    这样的数据是没有length属性的,这是一个普通的object,但你的数据要是
    ["a":"1", "b":"2"],
    这是数组,他才有length
    我估计你的数据是第一种情况,
    你可以for(p in json)遍历一遍获得元素的个数
      

  8.   

    不是数组 length就是undefined了
      

  9.   

    问题找到了
    我在struts2中用了json插件来序列化action的执行结果,
    所以返回的json格式是这样的:{“A”: [{.....}]}     //这里的{.....}是我action的执行结果正确的打印是这样的:
    [code=JScript][
    alert(responseJsonData .A.length);
    /code]