从php返回的JSON是[object Object],jQuery.parseJSON为null

时间:2012-07-22 23:36:42

标签: php javascript jquery json

在我的php文件中,我有:

$arr[] = array("status"=>0);
echo json_encode($arr);

在我的javascript中,我有:

$(document).ready(function(){

    initialize(); 
    $("#searchbutton").click(function(){

    var usrinput = $("#userinput").val();

    $.get(
        "searchpageajaxjson.php",
        {searchterm: usrinput},
        function(data){
            searchreturned(data);
        },
        "json"
    ); 
    });
 });


function searchreturned(data){
   console.log(data); 
   var parsed = jQuery.parseJSON(data);
   console.log(parsed); 
   //for (var i = 0; i < parsed.length; i++) {  
    //            alert(parsed[i]);  
    //     } 
   //    
}

console.log(data)显示[object Obejct] 和console.log(已解析)显示为空

我哪里错了?

编辑添加:

alert(data.status)显示未定义。

第二次编辑:

我非常感谢我收到的所有帮助。很难找到答案,因为由于所有评论中收到的所有帮助,我真的只能继续解决这个问题。我总是敬畏你那些热心帮助像我这样的新手的好心人。

2 个答案:

答案 0 :(得分:2)

您不应该再次致电jQuery.parseJSON上的data。 jQuery已经为您解决了这个问题,因为您使用"json"作为dataType

答案 1 :(得分:1)

1。没有理由调用jQuery.parseJSON$.parseJSON因为jQuery知道这已经是JSON对象了,因为你在这里传递了"json"参数:

$.get('source', {param:param}, function(data){ /*work with data*/ }, "json");

2。如果console.log(data);不为空且您得到一些[Object Object],请尝试查看该对象的属性,如下所示:

例如:探索您的对象:

enter image description here

例如:从对象打印值:

//this will output "Horror"
data.genre

希望这会对你有所帮助。