1

这是我第一次使用 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 代码。

4

1 回答 1

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(). 我就是这么想出来的。

print_r($Geocode_array);
于 2012-05-01T20:14:37.130 回答