解析JSON后,输出是array()


After parsing the JSON the output is array ( )

这是json文件

我需要在html页面中显示name, score, warsWon, WarsLost

我需要在html表中显示所有球员的userName, role, level

我使用以下代码,但输出是array()

<?php
$a = 'http://185.112.249.77:9999/Api/Clan?clan=274879547254'; // place your JSON here. If string, add signle quotes around it.
$arr = json_decode($a, TRUE);
$names = $arr['name'];
$score = $arr['score'];
$warsWon = $arr['warsWon'];
$warsLost = $arr['warsLost'];
$users = array();
if (! empty($arr['players'])) {
  foreach ($arr['players'] as $player) {
    $users[$player['avatar']['userId']]['userName'] = $player['avatar']['userName'];
    $users[$player['avatar']['userId']]['role'] = $player['avatar']['role'];
    $users[$player['avatar']['userId']]['level'] = $player['avatar']['level'];
  }
}
 echo '<pre>';
print_r($users);
echo '</pre>';
?>
下面是上面代码 的输出

谁能告诉我错误是什么?

$arr = json_decode($a, TRUE);

正在从URL的字符串解码JSON,而不是URL的内容(您正在解码http://.....而不是{id:....)

所以,你需要获取URL另一边的数据

所以把这行改成:

$arr = json_decode(file_get_contents($a), TRUE);