我目前正在搞乱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”],但没有返回任何内容。
我不知道出了什么问题;没有任何回报。
答案 0 :(得分: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”]
答案 1 :(得分:0)
也许你想要这样的东西?我只是猜测可能有超过1名玩家。
for($i = 0;$i<count($b["response"]["players"]);$i++)
{
echo $b["response"]["players"][$i]["name"]
}
答案 2 :(得分: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'];