0
下面是我的應用程序相關的代碼.....谷歌的地理編碼API JSON的PHP解碼打破當響應包含「/」
<?
$jsonData = file_get_contents($url);
$data = json_decode($jsonData, TRUE);
$lat = $data['results']['0']['geometry']['location']['lat'];
$lng = $data['results']['0']['geometry']['location']['lng'];
$formattedAddress = $data['results']['0']['formatted_address'];
$acomp = $data['results']['0']['address_components'];
foreach ($acomp as $acompArray) {
if (in_array("neighborhood", $acompArray["types"])) {
$neighborhood = $acompArray["long_name"];
}
}
$acomp = $data['results']['0']['address_components'];
foreach ($acomp as $acompArray) {
if (in_array("neighborhood", $acompArray["types"])) {
$neighborhood = $acompArray["long_name"];
}
}
?>
下面是JSON響應從谷歌的地理編碼API(的一個說破例子)
{
"results" : [
{
"address_components" : [
{
"long_name" : "3900",
"short_name" : "3900",
"types" : [ "street_number" ]
},
{
"long_name" : "Winchell Avenue",
"short_name" : "Winchell Ave",
"types" : [ "route" ]
},
{
"long_name" : "Oakland/Winchell",
"short_name" : "Oakland/Winchell",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Kalamazoo",
"short_name" : "Kalamazoo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Kalamazoo",
"short_name" : "Kalamazoo",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Michigan",
"short_name" : "MI",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "49008",
"short_name" : "49008",
"types" : [ "postal_code" ]
}
],
---A LOT MORE BUT DELETED THE IRRELEVANT PORTIONS---
}
這個問題似乎與所有的鄰居「奧克蘭/溫切爾」的情況發生,我的理論是,它包含了這似乎讓它返回任何「/」 ...我如何解決這個問題?
'/'應該被轉義。然而PHP json_decode通常沒有任何問題。 'print_r()'無論你有什麼。 – mario 2013-02-23 20:14:39