var strJosn = "[{name:'guosheng',password:'123456'}]";
  var j = eval(strJosn); 
  document.write(j[0].name);
这样可以正常运行,
但是var strJosn = "{name:'guosheng',password:'123456'}";
不是数据类型,就报下面的错误
Error:缺少 ';'
这个要怎么解决。谢谢。

解决方案 »

  1.   

    var strJosn = "{name:'guosheng',password:'123456'}";
    var j = eval("("+strJosn+")"); 
      

  2.   

    谢谢!
    另外想如下的格式,
    {"name":"Michael","address":
          {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
      }
    如果是java中生成的话,就是拼接成和上面一样的格式吗?
      

  3.   

    谢谢!
    另外想如下的格式,
    {"name":"Michael","address":
          {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
      }
    如果是java中生成的话,就是拼接成和上面一样的格式吗?
      

  4.   

    这个格式是源生对象。干嘛还要eval呢?var strJosn = [{name:'guosheng',password:'123456'}];
    就完了
      

  5.   

    eval会比较影响性能,建议少用
      

  6.   


    <div>
    <script type="text/javascript"><!--
    google_ad_client = "pub-6801609417141055";
    /* 728x90, 创建于 10-5-6 */
    google_ad_slot = "7731452172";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>
    </div>
      

  7.   

    这个问题我以前也遇到过,经过试验
    eval是函数试用的不对。
     正确的用法如下:
     var json={name:"A",age:"1"};
     eval("var jso=json");
     alert(jso.name);
     alert(jso.age);这样是可以的