调用Json数据返回undefined“
当我从php文件中调用json对象时,它返回undefined。 我可以看到所有数据写入alert(data)
但是当我写警报(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" } }
如果您使用的是jQuery 1.4+,那么您返回的JSON无效,它需要围绕第一books
条目的一组引号,如下所示:
{ "books": { "book1": "firstbook", "book2": "secondbook" } }
早期版本对此更加宽容,但一旦你纠正它, alert(data.books)
应该导致对象警报。 对于if()
,您将使用data.books.book1
来获取JSON中的条目,就像现在一样。
我在.php文件中改了
$arr = array ( "book1" => "firstbook" ,"book2" => "secondbook" );
现在它显示当我写alert(data.book1)out fisrtbook .for检查if(data.book1)它是否有效。