2013-07-28 4 views
1

Я смущен, как разбирать объект JSON в PHP.Разбор объектов JSON PHP

У меня есть этот объект от Google API (я удалил свои данные адреса!):

stdClass Object (
    [routes] => Array (
     [0] => stdClass Object (
      [bounds] => stdClass Object (
       [northeast] => stdClass Object (
        [lat] => 0.000000 
        [lng] => 0.000000 
       ) 
       [southwest] => stdClass Object (
        [lat] => 0.000000 
        [lng] => 0.00000 
       ) 
      ) 
      [copyrights] => Map data ©2013 Google 
      [legs] => Array (
       [0] => stdClass Object (
        [distance] => stdClass Object (
        [text] => 1 ft 
        [value] => 0 
       ) 
       [duration] => stdClass Object (
        [text] => 1 min 
        [value] => 0 
       ) 
       [end_address] => xxxx 
       [end_location] => stdClass Object (
       [lat] => 0.0000 
       [lng] => 0.0000 
      ) 
      [start_address] => xx 
      [start_location] => stdClass Object (
       [lat] => 0.0000 
       [lng] => 0.0000 
      ) 
     [steps] => Array (
      [0] => stdClass Object (
       [distance] => stdClass Object (
        [text] => 1 ft 
        [value] => 0 
       ) 
      [duration] => stdClass Object (
      [text] => 1 min 
      [value] => 0 
     ) 
     [end_location] => stdClass Object (
      [lat] => 0.0000 
      [lng] => 0.0000 
     ) 
     [html_instructions] => xxx 
     [polyline] => stdClass Object (
      [points] => wcrnIpdvH 
     ) 
     [start_location] => stdClass Object (
      [lat] => 1.234567 
      [lng] => 1.234567 
     ) 
     [travel_mode] => DRIVING 
     ) 
     ) 
     [via_waypoint] => Array (
     ) 
     ) 
    ) 
    [overview_polyline] => stdClass Object (
     [points] => wcrnIpdvH 
    ) 
    [summary] => xx 
     [warnings] => Array (
     ) 
     [waypoint_order] => Array (
     ) 
     ) 
    ) 
    [status] => OK 
) 

Я хочу, чтобы получить последнюю широту и долготу, которые я оставил, как [lat] => 1.234567 [lng] => 1.234567

I «ве работал, как получить расстояние, делая это:

$directions = json_decode($return); 
$distance = $directions->routes[0]->legs[0]->distance->text; 

Однако получение долготу и широту в тупик меня.

Если бы вы могли объяснить JSONs немного, спасибо больше!

+1

Вставьте ваш JSON в http://array.include-once.org/ примеры. – mario

+0

сделать его в массив, просто добавив true в качестве второго аргумента. например: 'json_decode ($ MY_JSON_STRING, true);' –

+0

Это отличный сайт! Помог мне понять JSONObjects и как они работают. Для любого, кто в будущем получит конечные координаты, используйте $ array-> routes [0] -> legs [0] -> end_location-> lat; – Geo1986

ответ

1

Попробуйте следующее:

//northeast 
$lat = $directions->routes[0]->bounds->northeast->lat; 
$lng = $directions->routes[0]->bounds->northeast->lng; 

и

////southwest 
$lat = $directions->routes[0]->bounds->southwest->lat; 
$lng = $directions->routes[0]->bounds->southwest->lng; 
Смежные вопросы