Как спарсить ответ json

276
26 февраля 2017, 10:31

get посылаю так:

$request_params = array('access_token' => $access_token);
    $get_params = http_build_query($request_params);
    $result = json_decode(file_get_contents('https://api.instagram.com/v1/users/self/followed-by?'.$get_params));

ответ приходит такой:

{
"data": [{
    "username": "kevin",
    "profile_picture": "http://images.ak.instagram.com/profiles/profile_3_75sq_1325536697.jpg",
    "full_name": "Kevin Systrom",
    "id": "3"
},
{
    "username": "instagram",
    "profile_picture": "http://images.ak.instagram.com/profiles/profile_25025320_75sq_1340929272.jpg",
    "full_name": "Instagram",
    "id": "25025320"
}]
}

Никак не могу спарсить через foreach, ибо пишет, что объект не существует. Пробовал так:

foreach ($result as $key) {
        echo $key->data->username;
}
Answer 1

Вот полный код

 $str = '{
        "data": [{
            "username": "kevin",
            "profile_picture": "http://images.ak.instagram.com/profiles/profile_3_75sq_1325536697.jpg",
            "full_name": "Kevin Systrom",
            "id": "3"
        },
        {
            "username": "instagram",
            "profile_picture": "http://images.ak.instagram.com/profiles/profile_25025320_75sq_1340929272.jpg",
            "full_name": "Instagram",
            "id": "25025320"
        }]
        }';
    $result = json_decode($str);
    foreach($result->data as $key) {
        var_dump($key->username);
    }
Answer 2

Можно распаковать json в ассоциативный массив, указав вторым параметром функции json_decode значение true. Возможно, вам так будет удобнее.

$str = '{
    "data": [{
        "username": "kevin",
        "profile_picture": "http://images.ak.instagram.com/profiles/profile_3_75sq_1325536697.jpg",
        "full_name": "Kevin Systrom",
        "id": "3"
    },
    {
        "username": "instagram",
        "profile_picture": "http://images.ak.instagram.com/profiles/profile_25025320_75sq_1340929272.jpg",
        "full_name": "Instagram",
        "id": "25025320"
    }]
    }';
$result = json_decode($str, true);
foreach($result['data'] as $key) {
    var_dump($key['username']);
}
READ ALSO
Каким образом обфусцирован этот код? [требует правки]

Каким образом обфусцирован этот код? [требует правки]

Каким способом зашифрован этот код? Обычные обфускаторы либо через eval , либо просто заменой переменных шифруют

221
react.js и WebRTC RTCPeerConnection.addStream is not an object

react.js и WebRTC RTCPeerConnection.addStream is not an object

Я хочу сделать небольшой чат с WebRTC и reactjs

335
Динамическая переменная в jquery

Динамическая переменная в jquery

Возможно ли на jquery реализовать динамическую переменную подобно angular js? Те

352
авторизация в вк nodejs

авторизация в вк nodejs

Всем привет! Подскажите простой способ авторизации сайта на nodejs + виджет авторизации вк

390