2015-08-25 3 views
0

Как я могу декодировать «значение» в этом json?GetUserStatsForGame Json [Steam, CS: GO]

{ 
"playerstats": { 
    "steamID": "76561198054387800", 
    "gameName": "ValveTestApp260", 
    "stats": [ 
     { 
      "name": "total_kills", 
      "value": 19229 
     }, 

Вот полный JSON: http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=B85FE65EC6076829BEB5080BFADC8B50&steamid=76561198054387800

Я уже попытался это:

$str = file_get_contents("http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=".$steamauth['apikey']."&steamids=".$_SESSION['steamid']); 
$json = json_decode($str, true); 
$totalkills = $json['playerstats']['stats'][0]['total_kills']['value']; 
echo $totalkills . PHP_EOL; 

Пожалуйста, помогите мне:/

+0

Смутно, '$ json ['playerstats'] ['stats'] [0]' - массив с двумя ключами, называемый 'name' и' value'. Значение, которое вы хотите, находится в '$ json ['playerstats'] ['stats'] [0] ['value']'. Скопируйте соответствующие части файла JSON в свой вопрос - в его нынешнем виде этот вопрос мало кому нужен и, вероятно, будет удален. –

+0

Спасибо за ответ, мне очень жаль этот неточный вопрос. Я отредактирую вопрос. – ideasia

ответ

0

Я думаю, что это будет работать.

$totalkills = $json['playerstats']['stats'][0]['value']; 
echo $totalkills . PHP_EOL; 

Но статистика является массивом, это своего рода небезопасным предположить totalkills всегда будет находиться в положении 0 массива. Безопаснее прокручивать массив и находить ценность, которую вы ищете.

foreach ($json['playerstats']['stats'] as $i) { 
    if ($i['name'] == "total_kills") { 
     echo $i['name'] . " :" . $i['value']; 
    } 
} 
Смежные вопросы