2016-01-21 39 views
-2

我有一個訪問PHP中API響應的對象返回值的需求。 API響應PHP - 訪問json響應中的值

$res = { 
    "data": { 
     "first_name": "Dany", 
     "last_name": "mate", 
     "id": "1379933133290837510", 
     "image": { 
      "60x60": { 
       "url": "https://s-media-cache-ak0.pinimg.com/avatars/dtest_1438666564_60.jpg", 
       "width": 60, 
       "height": 60 
      } 
     } 
    } 
} 

如何訪問參數 「FIRST_NAME」 & 「URL」?非常感謝您的幫助。我試圖將響應轉換爲數組但不起作用

$array = get_object_vars($res); 

我不知道這是否是正確的方法嗎?

+2

這似乎是JSON我,你有沒有嘗試'json_decode()'? – KhorneHoly

+0

確切的答案是什麼?這看起來像是php和js的組合。 – jeroen

回答

2
$res = json_decode('{ 
    "data": { 
     "first_name": "Dany", 
     "last_name": "mate", 
     "id": "1379933133290837510", 
     "image": { 
      "60x60": { 
       "url": "https://s-media-cache-ak0.pinimg.com/avatars/dtest_1438666564_60.jpg", 
       "width": 60, 
       "height": 60 
      } 
     } 
    } 
}'); 
$array = get_object_vars($res); 
print_r($array); 

你需要利用json_decode做這件事。

+2

而不是使用'get_object_vars()',你可以簡單地使用'json_decode($ string,true);'。這將返回一個數組而不是一個對象。 – KhorneHoly

+0

你是對的,一個很好的建議。 – ameenulla0007

+0

謝謝@ ameenulla0007 – Dibish

1

你必須JSON解碼第一:

$json = json_decode($res,true); 

foreach ($json['data'] as $data) 
{ 
    echo $data['first_name']; 
}; 
0
<?php 

    $pp = json_decode('{ 
    "data": { 
     "first_name": "Dany", 
     "last_name": "mate", 
     "id": "1379933133290837510", 
     "image": { 
      "60x60": { 
       "url": "https://s-media-cache-ak0.pinimg.com/avatars/dtest_1438666564_60.jpg", 
       "width": 60, 
       "height": 60 
      } 
     } 
    } 
}'); 
$data = json_encode($pp->{'data'}); 

    $aa = json_decode($data); 
    echo $aa->{'first_name'} .' & '; 

    $image = json_encode($aa->{'image'}); 
    $dd = json_decode($image); 

    $sity = json_encode($dd->{'60x60'}); 
    $url = json_decode($sity); 
    echo $url->{'url'}; 
?>