2012-05-01 47 views
1

这是我第一次使用JSON,并且我明显地发现了错误,我只是非常不确定它是什么。试图从Google地理编码返回纬度和长度

我已经查阅了如何解析一个简单的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代码。

回答

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); 
+0

这没有什么区别,我可以是我正在挖掘到JSON级别错了吗? – TomK89

+1

您可能有多个问题。让我做一些测试,我会让你知道我发现了什么... – Asaph

+1

谢谢你的帮助,非常感谢 – TomK89

相关问题