簡體   English   中英

顯示從JSON文件獲取的數組部分時出現問題

[英]Having trouble with displaying parts of an array obtained from a JSON file

我正在搞亂JSON。 我必須變量:$ a和$ b。

$ a從網站檢索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”],但沒有返回任何內容。

我不知道出了什么問題; 什么都沒有歸還。

你有一個多維數據集,而不是$ 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”]

也許你想要這樣的東西? 我只是猜測可能有超過1名玩家。

for($i = 0;$i<count($b["response"]["players"]);$i++)
{
   echo $b["response"]["players"][$i]["name"]
}

好吧,這是返回的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'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM