【问题标题】:GetUserStatsForGame Json [Steam, CS:GO]GetUserStatsForGame Json [Steam, CS:GO]
【发布时间】:2015-08-25 19:22:29
【问题描述】:

如何解码这个 json 中的“值”?

{
"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;

请帮帮我:/

【问题讨论】:

  • 令人困惑的是,$json['playerstats']['stats'][0] 是一个包含两个键的数组,分别称为 namevalue。您想要的值在$json['playerstats']['stats'][0]['value'] 中。请将 JSON 文件的相关部分复制到您的问题中 - 就目前而言,这个问题对任何人都没什么用,可能会被删除。
  • 感谢您的回答,对于这个不准确的问题,我真的很抱歉。我将编辑问题。

标签: json decode steam


【解决方案1】:

我想这会奏效。

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

但是由于 stats 是一个数组,假设 totalkills 总是在数组的位置 0 有点不安全。循环遍历数组并找到您正在寻找的值会更安全。

foreach ($json['playerstats']['stats'] as $i) {
    if ($i['name'] == "total_kills") {
        echo $i['name'] . " :" . $i['value'];
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2015-01-23
    • 2015-10-01
    • 2020-07-10
    相关资源
    最近更新 更多