我使用jQuery ajax从php页面获取json对象。
在php端我使用
while ($row = mysql_fetch_array($result)) {
array_push($retval, $row);
}
然后
echo json_encode($retval);
将其归还。
我在客户端从jQuery获取JSON ajax调用为一个数组,其中两个键用于每个对象中相同的值。一个关键是索引位置,另一个是名称。 例如:数组中的每个对象如下所示:
0: "1234"
1: "2014-11-01"
hc_month: "2014-11-01"
hc_wi_fi_unique: "1234"
关于我为什么会得到这样的结果的任何指示? (JSON_FORCE_OBJECT用于解决此类问题)
PS:我无法控制在mysql上使用mysqli或PDO。仅供参考。答案 0 :(得分:2)
不是json_encode
问题,而是mysql_fetch_array
:
http://php.net/manual/en/function.mysql-fetch-array.php
返回数组的类型取决于result_type的定义方式。通过 使用MYSQL_BOTH(默认),您将获得一个具有关联性的数组 和数字索引。使用MYSQL_ASSOC,您只能获得关联 索引(作为mysql_fetch_assoc()工作),使用MYSQL_NUM,你只能得到 数字索引(如mysql_fetch_row()有效)。
所以MYSQL_ASSOC
或使用mysql_fetch_assoc
,虽然我添加了必须的:脱离MySQL扩展并使用MySQLI或PDO 。