как получить дочерние элементы JSON - PullRequest
2 голосов
/ 28 августа 2011

Я обычно играю с одним уровнем JSON, как показано ниже ...

 <?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>

Довольно просто, как выбрать дочерние элементы, как в этом JSON карт Google.Например, широта

 {
    "results" : [
  {
     "address_components" : [
        {
           "long_name" : "1600",
           "short_name" : "1600",
           "types" : [ "street_number" ]
        },
        {
           "long_name" : "Amphitheatre Pkwy",
           "short_name" : "Amphitheatre Pkwy",
           "types" : [ "route" ]
        },
        {
           "long_name" : "Mountain View",
           "short_name" : "Mountain View",
           "types" : [ "locality", "political" ]
        },
        {
           "long_name" : "San Jose",
           "short_name" : "San Jose",
           "types" : [ "administrative_area_level_3", "political" ]
        },
        {
           "long_name" : "Santa Clara",
           "short_name" : "Santa Clara",
           "types" : [ "administrative_area_level_2", "political" ]
        },
        {
           "long_name" : "California",
           "short_name" : "CA",
           "types" : [ "administrative_area_level_1", "political" ]
        },
        {
           "long_name" : "United States",
           "short_name" : "US",
           "types" : [ "country", "political" ]
        },
        {
           "long_name" : "94043",
           "short_name" : "94043",
           "types" : [ "postal_code" ]
        }
     ],
     "formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
     "geometry" : {
        "location" : {
           "lat" : 37.4220110,
           "lng" : -122.08406610
        },
        "location_type" : "ROOFTOP",
        "viewport" : {
           "northeast" : {
              "lat" : 37.42335998029150,
              "lng" : -122.0827171197085
           },
           "southwest" : {
              "lat" : 37.42066201970850,
              "lng" : -122.0854150802915
           }
        }
     },
     "types" : [ "street_address" ]
  }
    ],
    "status" : "OK"
 }

Ответы [ 2 ]

0 голосов
/ 28 августа 2011

простой

$json = json_decode($json);
echo $json->results[0]->geometry->location->lat;
0 голосов
/ 28 августа 2011

Возможно, вы захотите проверить Считать значение из JSON, используя PHP , @Ignacio Vazquez-Abrams говорит

В PHP объекты JSON декодируются в объекты, а массивы - в массивы:

   $data->results[0]->geometry->location->lat
   $data->results[0]->geometry->location->lng
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...