0

JSON 配列オブジェクトから値を取得することに成功していません。私は特にジオメトリ->場所->緯度に到達しようとしています

これが私がやっていることです:

    $url='http://maps.googleapis.com/maps/api/geocode/json?address='.$a.'&sensor=false';
    $result = file_get_contents($url);
    $jsonArr = json_decode($result,true);

    echo "Lat: ".$jsonArr['results']['geometry']['location']['lat'];

以下は、Google から返された JSON の print_r() です。

 {
       "results" : [
          {
             "address_components" : [
                {
                   "long_name" : "46814",
                   "short_name" : "46814",
                   "types" : [ "postal_code" ]
                },
                {
                   "long_name" : "Fort Wayne",
                   "short_name" : "Fort Wayne",
                   "types" : [ "locality", "political" ]
                },
                {
                   "long_name" : "Indiana",
                   "short_name" : "IN",
                   "types" : [ "administrative_area_level_1", "political" ]
                },
                {
                   "long_name" : "United States",
                   "short_name" : "US",
                   "types" : [ "country", "political" ]
                }
             ],
             "formatted_address" : "Fort Wayne, IN 46814, USA",
             "geometry" : {
                "bounds" : {
                   "northeast" : {
                      "lat" : 41.08472709999999,
                      "lng" : -85.26534090
                   },
                   "southwest" : {
                      "lat" : 41.00163510,
                      "lng" : -85.35540899999999
                   }
                },
                "location" : {
                   "lat" : 41.05472940,
                   "lng" : -85.30328109999999
                },
                "location_type" : "APPROXIMATE",
                "viewport" : {
                   "northeast" : {
                      "lat" : 41.08472709999999,
                      "lng" : -85.26534090
                   },
                   "southwest" : {
                      "lat" : 41.00163510,
                      "lng" : -85.35540899999999
                   }
                }
             },
             "types" : [ "postal_code" ]
          }
       ],
       "status" : "OK"
    }
4

1 に答える 1

2

結果は配列で返されます。最初の要素を取得すれば完了です。ただし、結果配列に実際に少なくとも 1 つの要素があることを確認する必要があります。

echo "Lat: " . $jsonArr['results'][0]['geometry']['location']['lat'];
于 2013-06-20T01:22:37.857 に答える