Jquery Ajax and json


Jquery Ajax and json

我通过ajax发送一个值到mysql查询。我从查询得到输出作为数组。我用的是echo json_encode($var);

如果我的数组大小大于1,我的成功函数没有被调用。我可以在fire bug中看到响应和状态码200。

我应该如何在我的成功函数检索值?

  success: function(data){
         ob = jQuery.parseJSON(data); 
  }               

我的Json响应从firebug

{"uid":"4",
"name":"ram'u00fcrmeg'u00f6zl'u00fcer",
"pic_big":"http:'/'/profile.ak.fbcdn.net'/hprofile-ak-prn1'/4149__3333_n.jpg"}
    $.ajax({
        type: "POST",
        url: "x.php",
        dataType: 'json',
        data: y,
        success: function(data){    
         }
})

试试下面的提示,看看是否有提示。

if(!$.isEmptyObject(data))
       { 
       alert (data);  
       var len = data.length;
       for (var i = 0; i< len; i++) {
    var var1 = [data[i].uid];
    var var2 = [data[i].name];
            var var3 = [data[i].pic_big];   
      }
else{alert('No data')}

您的响应已经是一个对象,不需要对其进行parseJSON。只需执行以下操作即可获取值:

console.log(data.uid);
console.log(data.name);
console.log(data.pic_big);

或者你想怎么处理这些值

您可以尝试:

    $.ajax({
    type: "POST",
        url: "x.php",
        dataType: 'json',
        data: y,
        success: function(data){
           $.each(data, function() {
              var uid = this.uid; // etc
           } 
          // this works alone if your response is wrapped in [ ], if not:
          if(!data.length) {
              var uid = data.uid;
          } else { // above $.each code 
          }
      }

jsFiddle this here: http://jsfiddle.net/Y73xe/