应该是单引号和前边的匹配了,这样改
var newMsg = eval(msg.responseText);

解决方案 »

  1.   

    把这个
    {'msg':[{'a'
    改成
    {msg:[{'a'
    不需要引号的
      

  2.   

    msg这个key要不要引号,没所谓的。两种改法:
    var newMsg = eval('['+msg.responseText+']');  // 变成数组
    或者
    eval("var newMsg = " + msg.responseText);     // 解释附值
      

  3.   

    别老是整天只想着 eval ,将字符串转换成脚本方法很多:<SCRIPT LANGUAGE="JavaScript">
    var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
    var f = new Function("return "+ str);
    alert(f().msg)
    </SCRIPT>
      

  4.   

    to 楼主 and matrixy:
    奇怪啊,我刚去测了一下帖的代码,没有问题啊!? 引不引号都一样
    如下:
    var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
    var newMsg = eval('('+str+')');
    alert(newMsg)to meizz大侠:
    如果能eval搞定,非得要去用那种晦涩的Function吗? 这样改,我觉得看着都累
      

  5.   

    new Function 很晦涩吗?那我再用 eval:var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
    eval("ss = "+ str);
    alert(ss.msg)
      

  6.   

    明明很简单的东西,自己非要很牛角尖里钻,硬是要在外面套上一个括号,干吗??var str = "{'msg':[{'a':'1','b':'测试1'},{'a':'2','b':'测试2'},{'a':'3','b':'测试3 '}]}";
    var ss;
    eval("ss = "+ str);
    alert(ss.msg)
      

  7.   

    这是ppjoke聊天程序的一段代码,已经想到其它方法搞定了,主要是利用AJAX做到无刷滚屏但又不想ppjoke那样复杂,所以自己尝试写了个程序。