2017-02-18 79 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;