alert(json);
 alert(json.pinlun);
打印json显示{mingzi:"hh",pinlun:"评论"},但是打印json.pinlun却说未定义,请问是什么原因呢下面是调用的方法$("#Button1").click(function(){
    $.get("Default3.aspx",function(json){
       alert(json);
       alert(json.pinlun);
       var a = json.mingzi;
       var b = json.pinlun;
          $(".aa").eq(0).text(a);
          $(".bb").eq(0).val(b);
    
        },'json');   })

解决方案 »

  1.   

    楼主没有这个函数当然就说无定义了,没有这个方法,不能和js中一样那样写,jquery有自己的写法,但大部分是调用函数
      

  2.   

    你得到的JSON应该是一个字符串,还没经过eval转换,所以就看到{mingzi:"hh",pinlun:"评论"}
    不然你看到的就可能是 [object Object] 这样的东西了既然是字符串,所以json.pinlun当然就不存在了
      

  3.   

    先要把json转换为对象,才可以使用对象的属性
      

  4.   

    $("#Button1").click(function(){
            $.get("Default3.aspx",function(json){
               json = eval(json)
               alert(json);
               alert(json.pinlun);
               var a = json.mingzi;
               var b = json.pinlun;
              $(".aa").eq(0).text(a);
              $(".bb").eq(0).val(b);
            
                },'json');   })
      

  5.   

    打印json显示{mingzi:"hh",pinlun:"评论"},
    ----
    如果是 alert(json) ,后,显示的就是这段字符串的话,说明你的json此时仅仅是一个字符串而已。
    而不是一个json对象。
    你可以这样做
    json = eval('('+json+')');
    即先把字符串转换成object
      

  6.   

    谢谢各位了啊,我马上结帖,请问我在Default3.aspx里面,Response.Write("{mingzi:'chenwei'}");,这个就是直接生成的字符串么?请问一般生成JSON文件的方法是怎么样的呢
      

  7.   


    $("#Button1").click(function(){
            $.get("Default3.aspx",function(json){
               json = eval(json)
               alert(json);
               alert(json.pinlun);
               var a = json.mingzi;
               var b = json.pinlun;
              $(".aa").eq(0).text(a);
              $(".bb").eq(0).val(b);
            
                },'json');   })
    你可以用$.each(json, function(k,v){
              alert(k+ ":" + v);
    });
    这样弹出来看看是不是正常的。
    $.get(fn, "json");是可以的,相对于$.getJson()
    一般是通过服务器端传回一段json的字符串,然后eval转成js的对象。