返回 [对象对象] 而不是值的数组


Array returning [Object object] instead of value?

可能的重复项:
Json 返回 [对象对象] 而不是数组

我有一个包含子数组的数组,通过 POST 请求拉取到 PHP 文件。问题是,我很难找到如何返回数组对象的值,更不用说遍历它了。

爪哇语

$.ajax({
    type: 'POST',
    url: 'php.php',
    data: 'id=testdata',
    dataType: 'json',
    cache: false,
    success: function(result) {
        alert(result[0]); // returns [Object object]
    },
});

我确信它正确地从 PHP 文件中抓取了数组。

这是 PHP 文件。

在您的情况下,result 是一个对象数组,因此result[0]是第一个对象。例如,要访问id,您可以使用 result[0]['id'] .为了遍历对象数组,您可以使用如下 for 循环,例如:

for(var i=0, len = result.length; i<len; i++) {
    //write your code for each object in the results here
    var id = result[i]['id'];
}

您必须在对象中指定,我的意思是......

alert(result[0]['field_name']);

当您使用 PHP 从一个"id"获取一些数据时,我可以建议您在查询 mysql 时,请使用下一个语法,

echo json_encode(mysql_fetch_object(mysql_query('your_query')));

使用此语法,您将只获得一个对象,其中包含查询中获取的所有字段,因此警报将是:

alert(result['field_name']);

我希望,这有所帮助。

您可以

像这样迭代它:

$.each(result, function () {
    alert(this.name);   // or this.id, this.description, etc.
});

我建议使用Firebug之类的工具,然后执行console.log(result);以获得更具描述性的输出。