Получение данных из Yelp API

Я начинаю изучать Yelp API. Когда я отправляю запрос на поиск, я получаю данные, возвращаемые в виде массива $response. Итак, если я выведу это так

echo '<pre>';
print_r($response);
echo '</pre>';

Я вижу результаты в следующем формате

stdClass Object
(
    [message] => stdClass Object
        (
            [text] => OK
            [code] => 0
            [version] => 1.1.1
        )

    [businesses] => Array
        (
            [0] => stdClass Object
                (
                    [rating_img_url] => http://s3-media2.ak.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png
                    [country_code] => US
                    ...
                 )
         )
)

Итак, допустим, я хочу получить код страны, разве я не должен получить его с помощью чего-то вроде?

echo $response['businesses'][0]->country_code;

Я не получаю никаких результатов. Что мне не хватает?


person santa    schedule 22.05.2014    source источник


Ответы (1)


echo $response->businesses[0]->country_code;

businesses — это свойство, а не элемент массива.

Все, что ниже stdClass Object, является собственностью.

Все, что ниже => Array, является элементами массива.

Дай угадаю, $response = json_decode(...); ?

Вы можете указать этой функции возвращать ассоциативные массивы вместо объектов, указав второй параметр true:

$response = json_decode(..., true);

Тогда значения будут в:

echo $response['businesses'][0]['country_code'];
person Daniel W.    schedule 22.05.2014
comment
Да... Кофе, мне нужно еще кофе! Данке. - person santa; 22.05.2014
comment
@santa Мы все знаем это чувство. - person Daniel W.; 22.05.2014