1

可能重复:
Json 返回 [object object] 而不是数组

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

Javascript

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

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

这是PHP 文件

4

3 回答 3

4

在您的情况下,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'];
}
于 2012-04-06T20:33:54.840 回答
2

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

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

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

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

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

alert(result['field_name']);

我希望这有帮助。

于 2012-04-06T20:34:20.313 回答
0

您可以像这样迭代它:

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

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

于 2012-04-06T20:30:42.323 回答