2016-04-28 38 views
1

我有以下代碼,我試圖從中獲取jSON內容;使用json_decode函數解析PHP中的JSON對象

$url = "http://useragentapi.com/api/v3/json/APIKEY/$ua"; 
$json = file_get_contents($url); 
$json_data = json_decode($json, true); 
echo "My Platform: ". $json_data["data.platform_name"]; 

我需要得到的數據的內部再到PLATFORM_NAME以及我需要訪問JSON object的所有元素,但我可以得到代碼工作。

JSON結果[$json_data]是這樣的。

{ 
"data": { 
     "platform_name": "Mac OSX El Capitan", 
     "platform_version": "Mac OS X 10_11", 
     "platform_type": "Desktop", 
     "browser_name": "Chrome", 
     "browser_version": "52.0.2718.0", 
     "engine_name": "WebKit", 
     "engine_version": "537.36" 
     } 
} 
+0

剛剛發佈您的'json',無需其他的事情。 –

回答

3

嘗試:

$json = '{ 
"data": { 
     "platform_name": "Mac OSX El Capitan", 
     "platform_version": "Mac OS X 10_11", 
     "platform_type": "Desktop", 
     "browser_name": "Chrome", 
     "browser_version": "52.0.2718.0", 
     "engine_name": "WebKit", 
     "engine_version": "537.36" 
     } 
}'; 

解碼使用json_decode功能,並使用用於獲取關聯數組作爲輸出作爲真正的第二參數的JSON。

$arr = json_decode($json, true); 

結果

Array 
(
    [data] => Array 
     (
      [platform_name] => Mac OSX El Capitan 
      [platform_version] => Mac OS X 10_11 
      [platform_type] => Desktop 
      [browser_name] => Chrome 
      [browser_version] => 52.0.2718.0 
      [engine_name] => WebKit 
      [engine_version] => 537.36 
     ) 

) 

echo $arr['data']['platform_name']; 

輸出:

Mac OSX El Capitan 

如果不使用真正作爲json_decode第二個參數,那麼你需要做的 這:

$arr = json_decode($json); 

echo $arr->data->platform_name; //Mac OSX El Capitan 
+1

令人驚歎!謝謝 –

+0

@LiamArmour,如果你從這個答案幫助,那麼你需要接受這個答案。 –

1

嘗試這個

$json = '{ 
    "data": { 
    "platform_name": "Mac OSX El Capitan", 
    "platform_version": "Mac OS X 10_11", 
    "platform_type": "Desktop", 
    "browser_name": "Chrome", 
    "browser_version": "52.0.2718.0", 
    "engine_name": "WebKit", 
    "engine_version": "537.36" 
    } 
}'; 


$arr = json_decode($json); 
echo $arr->data->platform_name;