当我从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"
}
}
答案 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)。