如何从 PHP 脚本中 understand/consume json 输出
How to understand/consume json output from PHP script
使用 PHP PDO 我运行这个查询
SELECT Name, Latitude, Longitude, Begin, End FROM VenueData
并获取数据
$data = $sth->fetchAll();
然后输出
header("Content-type: application/json");
print(json_encode(array('venues'=>$data)));
但是输出很奇怪,
{"venues":[{"Name":"Flintstone1","0":"Flintstone1","Latitude":"57","1":"57","Longitude":"-124","2":"-124","Begin":"8","3":"8","End":"14","4":"14"}]}
select 查询中的每一列似乎都有 2 个键,一个按名称,一个按索引 0-n) 在 json 中。我以前没有遇到过,为什么会这样?
这可能是因为您使用的是 fetch。
检查:PHP Manual PDOStatement::fetchAll
默认情况下,这将使用 PDO::FETCH_BOTH,其中包括结果的数值数组和关联数组。
(获取样式选项可在此处找到:PHP Manual PDOStatement::fetch)
根据您的需要,您可以使用:
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
或:
$data = $sth->fetchAll(PDO::FETCH_NUM);
改变这个:
$data = $sth->fetchAll();
由此
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
使用 PHP PDO 我运行这个查询
SELECT Name, Latitude, Longitude, Begin, End FROM VenueData
并获取数据
$data = $sth->fetchAll();
然后输出
header("Content-type: application/json");
print(json_encode(array('venues'=>$data)));
但是输出很奇怪,
{"venues":[{"Name":"Flintstone1","0":"Flintstone1","Latitude":"57","1":"57","Longitude":"-124","2":"-124","Begin":"8","3":"8","End":"14","4":"14"}]}
select 查询中的每一列似乎都有 2 个键,一个按名称,一个按索引 0-n) 在 json 中。我以前没有遇到过,为什么会这样?
这可能是因为您使用的是 fetch。
检查:PHP Manual PDOStatement::fetchAll
默认情况下,这将使用 PDO::FETCH_BOTH,其中包括结果的数值数组和关联数组。
(获取样式选项可在此处找到:PHP Manual PDOStatement::fetch)
根据您的需要,您可以使用:
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
或:
$data = $sth->fetchAll(PDO::FETCH_NUM);
改变这个:
$data = $sth->fetchAll();
由此
$data = $sth->fetchAll(PDO::FETCH_ASSOC);