0

私は現在JSONをいじっています。$a と $b という変数が必要です。

$a は、Web サイトから JSON ファイルを取得します。

    $a = file_get_contents("http://backpack.tf/api/IGetUsers/v2/?steamids=76561198037411448&format=json");

$b はそれをデコードします

    $b = json_decode($a, true);

実際に配列であることを確認するために、 $b で var_dump を実行しました。

$b["name"] をエコーし​​ようとしましたが、何も返されませんでした。

何が問題なのかわかりません。何も返されていません。

4

3 に答える 3

2

$b["name"]の代わりに、多次元のデータ セットがあります。

$b["response"]["players"][0]["name"]

これは、その URL の json オブジェクト構造です

{
    "response": {
        "success": 1,
        "current_time": 1369778504,
        "players": {
            "0": {
                "steamid": "76561198037411448",
                "success": 1,
                "backpack_value": 185.86,
                "backpack_update": 1369543543,
                "name": "Paranoid Android",
                "stats_tf_reputation": 1,
                "notifications": 0
            }
        }
    }
}

反復が必要な場合は、$b["response"]["players"]をループする必要があります

于 2013-05-28T22:03:18.033 に答える
0

多分あなたはこのようなものが欲しいですか?複数のプレイヤーが存在する可能性があると推測しているだけです。

for($i = 0;$i<count($b["response"]["players"]);$i++)
{
   echo $b["response"]["players"][$i]["name"]
}
于 2013-05-28T22:05:04.320 に答える
0

さて、これは返される JSON です。

{
    "response": {
        "success": 1,
        "current_time": 1369778435,
        "players": {
            "0": {
                "steamid": "76561198037411448",
                "success": 1,
                "backpack_value": 185.86,
                "backpack_update": 1369543543,
                "name": "Paranoid Android",
                "stats_tf_reputation": 1,
                "notifications": 0
            }
        }
    }
}

の場合$b = json_decode($a)、単に使用$b['name']するだけでは機能しません。そのキーは設定されていません。

オブジェクト リテラルのネストに従う必要があります。このようなものが動作するはずです:

echo $b['response']['players']['0']['name'];
于 2013-05-28T22:05:51.243 に答える