这是我第一次使用JSON,我显然遇到了问题,我只是不确定它是什么。
我已经查找了如何解析一个简单的json,但我认为它更深层次的谷歌地理编码可能会让我失望。
以下是我试图获取我的价值观的原因:
$getJSON = "http://maps.googleapis.com/maps/api/geocode/json?address=" . str_replace(" ", "", $_POST['postcode']) . "&sensor=false";
$contentJSON = file_get_contents($getJSON);
$Geocode_array = json_decode($contentJSON, true);
$lat = $Geocode_array[results][address_components][geometry][location][lat];
$lng = $Geocode_array[results][address_components][geometry][location][lng];
如果需要,我可以发布json代码。
答案 0 :(得分:3)
尝试引用数组键。没有引号,PHP假设这些键是未定义的常量。此外,您还没有正确地遍历JSON结果。试试这个:
$lat = $Geocode_array['results'][0]['geometry']['location']['lat'];
$lng = $Geocode_array['results'][0]['geometry']['location']['lng'];
Google Maps API可为您提供阵列中的多个结果。我正在引用上面代码中的第一个(索引0
)。在开发过程中有用的事情是使用print_r()
将关联数组打印到PHP输出缓冲区。这就是我弄明白的原因。
print_r($Geocode_array);