调用Json数据返回undefined“

时间:2010-09-06 13:15:03

标签: jquery json return-value

当我从php文件中调用json对象时,它返回undefined。我可以看到写入alert(data)的所有数据,但是当我编写alert(data.books)时,它会返回unifined。

$JSON = '

{
  "books": {
 "book1": "firstbook",
 "book2": "secondbook"
  }
  }
';

我用jquery调用它

jQuery('#login').live('submit',function(event) {


$.ajax({
    url: 'lib/login.php',
    type: 'POST',
    dataType: 'json',
    data: $('#login').serialize(),
  success: function(data ) {

alert(' ' +data.books);

  if(data.books.book1){  
alert("OK"); 
}else
{
alert("error");   
}
}

 });

   return false;


});

修改  这是它返回警报(数据)的方式

    {

  "books": {

  "book1": "firstbook",

  "book2": "secondbook"

}

}

2 个答案:

答案 0 :(得分:0)

如果您使用的是jQuery 1.4+,那么您返回的JSON无效,它需要围绕第一个books条目的一组引号,如下所示:

{
  "books": {
    "book1": "firstbook",
    "book2": "secondbook"
  }
}

早期版本对此更加宽容,但一旦你纠正它,alert(data.books)应该会产生一个对象警报。对于if(),您可以使用data.books.book1来获取JSON中的条目。

答案 1 :(得分:0)

我改变了.php文件,如

$arr = array ( "book1" => "firstbook" ,"book2" => "secondbook" );

现在它显示我写警报(data.book1)时输出fisrtbook。来检查它是否有效(data.book1)。