我想輸出一個使用PHP和MySQL的JSON字符串,但經度和緯度輸出爲帶有引號的字符串值。當我嘗試將標記添加到谷歌地圖時,這會導致問題。PHP JSON編碼輸出數字爲字符串
這裏是我的代碼:
$sql = mysql_query('SELECT * FROM markers WHERE address !=""');
$results = array();
while($row = mysql_fetch_array($sql))
{
$results[] = array(
'latitude' =>$row['lat'],
'longitude' => $row['lng'],
'address' => $row['address'],
'project_ID' => $row['project_ID'],
'marker_id' => $row['marker_id']
);
}
$json = json_encode($results);
echo "{\"markers\":";
echo $json;
echo "}";
這裏是預期輸出:
{"markers":[{"latitude":0.000000,"longitude":0.000000,"address":"2234 2nd Ave, Seattle, WA","project_ID":"7","marker_id":"21"}]}
這裏是我得到的輸出:
{"markers":[{"latitude":"0.000000","longitude":"0.000000","address":"2234 2nd Ave, Seattle, WA","project_ID":"7","marker_id":"21"}]}
注意周圍的引號緯度和經度值。
這些JSON_ *常量在要求中相當重要:) – 2012-07-10 03:06:13
請注意,這隻適用於PHP> = 5.3。如果你需要支持舊版本(許多網站在編寫PHP 5.2的時候),@Allen Chak的回覆相當不錯 – kakoma 2014-12-04 09:25:40
你爲我節省了很多時間。 – Jordy 2015-02-06 12:35:51