本帖最后由 duzc309 于 2011-07-19 19:57:30 编辑

解决方案 »

  1.   

    1 json是对象,不能直接进行字符串操作. 要用stringfy()方法转一下,
    相关方法下载: http://www.json.org/js.html2. 转回对象用  eval("(" + jsonData + ")")
      

  2.   

    和json里的key 加不加引号无关
      

  3.   


    var jsonText = JSON.stringfy();
    是取得JSON数据,我现在已经生成JSON数据了,所以和这个应该是无关的。
    问题的关键:var method = "test"+"(\""+ objJson +"\")";
      eval(method);似乎把JSON数据转为错误的值。
      

  4.   

    JSON.parse()
    JSON.stringfy()
    仅仅是对象-》JSON, JSON-》对象
      

  5.   

    兄弟:json+'' 这两个怎么能相加呢。
    json是个对象,后面那两个单引号代表字符串
    一个对象 + 一个字符串。
    对象首先转换成字符串,在加后面的''
    程序上执行就是:
    json.toString()+''
    json.toString() 输出的是字符串'[object object]' 然后 在加'',
    最后输出的是字符串“[object object]”,注意是字符串,不再是json对象了,你再怎么转都不行了<script type="text/javascript">
        var json = {
            "key1": "name",
            "key2": "password"
        };  
        var j = json + '';
        alert(typeof j);  //输出string  </script>
      

  6.   

    function fCallJson(){
      var json = {
      "key1":"name",
      "key2":"password"
     };
     
     var objMethod= eval("fRunJson"); var a=json.toJSONString(); objMethod(a+'');//代码1}
     <script src="json-js-file-download.js" type="text/javascript"></script>
    function fRunJson(jsonData){
      alert(jsonData);
      var json=eval('(' + jsonData + ')');
      alert(json.key1);
    }window.onload=fCallJson;
    json-js-file-download.js下载地址
      

  7.   

    这段代码是有效的,可惜JSON的值不能是object,只能是字符串。谢谢啦,结贴!