我有一个返回一些对象的jQuery帖子。
所以,我有一个数据库查询结果,我做json_encode($result)
,然后我把它作为响应发送到jQuery帖子里面的success
函数。
如果我在console.log中看到响应,我会看到多个对象。我想要的是将响应作为数组数组发送。
在PHP中
json_encode($results)
在javascript中:
success: function(json) {
console.log(json);
}
在控制台日志中:
[>Object , >Object , >Object]
有什么想法吗?
答案 0 :(得分:3)
php中的$results
是一个对象或关联数组的数组。在使用强制转换发送之前,使其成为数字索引数组的数组:
// ASSUMING each $result object does not have its own nested arrays
foreach ($results as &$result) {
$result = array_values((array) $result);
}
请注意,您将无法按列名称获取项目。
但请退一步思考你的$结果来自哪里。
如果您使用的是mysql驱动程序,请在构建结果时考虑这样做:
$results = array();
// Note we use MYSQL_NUM option, so $row looks like array('col1value', 'col2value')
while (FALSE !== ($row = mysql_result_array($resource, MYSQL_NUM))) {
$results[] = $row;
}
json_encode($results);
答案 1 :(得分:1)
答案 2 :(得分:0)
在php中,施放:
$ array =(array)$ object;
答案 3 :(得分:0)
json encode会将字符串编码为json OBJECT,它在javascript中是一个对象。在javascript中,数组只是一个具有特殊辅助函数的对象。不需要从对象创建数组,因为您可以像操作数组一样轻松地操作对象。