我有以下JSON数组:
<?php
$json = {
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "5721 N Northcott Ave, Chicago, IL 60631, USA",
"address_components": [ {
"long_name": "5721",
"short_name": "5721",
"types": [ "street_number" ]
}, {
"long_name": "Illinois",
"short_name": "IL",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "60631",
"short_name": "60631",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 41.9858860,
"lng": -87.7907460
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 41.9827384,
"lng": -87.7938936
},
"northeast": {
"lat": 41.9890336,
"lng": -87.7875984
}
}
}
} ]
};
?>
使用PHP,如何从上面的JSON数组中获取geometery->location->lat
&amp; lng
值?
例如(伪代码):
<?php
$lat = $json['geometry']['location']['lat']; // 41.9858860
$lng = $json['geometry']['location']['lng']; // -87.7907460
?>
答案 0 :(得分:5)
您使用json_decode
,然后使用$var->results[0]->geometry->location->lat;
。
json_decode
产生以下结构:
object(stdClass)[1] public 'status' => string 'OK' (length=2) public 'results' => array 0 => object(stdClass)[2] public 'types' => array 0 => string 'street_address' (length=14) public 'formatted_address' => string '5721 N Northcott Ave, Chicago, IL 60631, USA' (length=44) public 'address_components' => array 0 => object(stdClass)[3] public 'long_name' => string '5721' (length=4) public 'short_name' => string '5721' (length=4) public 'types' => array 0 => string 'street_number' (length=13) 1 => object(stdClass)[4] public 'long_name' => string 'Illinois' (length=8) public 'short_name' => string 'IL' (length=2) public 'types' => array 0 => string 'administrative_area_level_1' (length=27) 1 => string 'political' (length=9) 2 => object(stdClass)[5] public 'long_name' => string '60631' (length=5) public 'short_name' => string '60631' (length=5) public 'types' => array 0 => string 'postal_code' (length=11) public 'geometry' => object(stdClass)[6] public 'location' => object(stdClass)[7] public 'lat' => float 41.985886 public 'lng' => float -87.790746 public 'location_type' => string 'ROOFTOP' (length=7) public 'viewport' => object(stdClass)[8] public 'southwest' => object(stdClass)[9] public 'lat' => float 41.9827384 public 'lng' => float -87.7938936 public 'northeast' => object(stdClass)[10] public 'lat' => float 41.9890336 public 'lng' => float -87.7875984
答案 1 :(得分:3)
您使用json_decode
。
E.g:
$json_obj = json_decode($json);
echo $json_obj->results[0]->geometry->location->lat;
我们访问结果数组的第一个元素,然后浏览几何,位置和纬度属性。您也可以使用关联数组,但默认为对象。
答案 2 :(得分:2)
问候,
我建议您阅读json_decode文档
<?php
$obj = json_decode($json);
$lat = $obj->results[0]->geometry->location->lat;
?>