2017-02-18 101 views
0

我試圖解碼從一個API一個JSON,但是當我嘗試代碼:的Json解碼 - PHP

<?php 
    $json = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=270EBE5B0B2501EE0FC750196325406B&steamids=76561198260508210"); 
    $decode = json_decode($json,1); 
    echo $decode['realname']; 
    ?> 

這似乎是:

Notice: Undefined index: realname in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\CSGrow\index.php on line 26 

回答

1

當你仔細檢查API響應,又是什麼返回值:

{ 
    "response": { 
    "players": [ 
     { 
     "steamid": "76561198260508210", 
     "communityvisibilitystate": 3, 
     "profilestate": 1, 
     "personaname": "xGrow ◔ ⌣ ◔", 
     "lastlogoff": 1487378601, 
     "commentpermission": 1, 
     "profileurl": "http://steamcommunity.com/id/xgrow/", 
     "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/9b/9bc4b0e198dfcc919cbcc781beb5886acaa9daee.jpg", 
     "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/9b/9bc4b0e198dfcc919cbcc781beb5886acaa9daee_medium.jpg", 
     "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/9b/9bc4b0e198dfcc919cbcc781beb5886acaa9daee_full.jpg", 
     "personastate": 1, 
     "realname": "Pedro", 
     "primaryclanid": "103582791434436747", 
     "timecreated": 1447526746, 
     "personastateflags": 0, 
     "loccountrycode": "PT" 
     } 
    ] 
    } 
} 

要創建一個選手對象,代碼如下:

<?php $json = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=270EBE5B0B2501EE0FC750196325406B&steamids=76561198260508210"); 
$decode = json_decode($json,1); 

$player = $decode['response']['players'][0]; 

echo $player['realname']; 
?> 
1

這是因爲真實姓名不在數組的主要部分。你應該看到像這樣:

json -> "response" -> "players"[0] -> "realname"

所以,你需要做的是這樣的:

$realname = $decode->response->players[0]->realname;