可能的重复项:
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);
以获得更具描述性的输出。