1) I think you don't need to convert json to object, it's simpler to convert it to an array
$data = json_decode($json, true);
2) And then you can get any portion of data:
As you said:
I want to print the values under the players array which are the account_id, player_slot, hero_id and so on
It's simple:
foreach($data['players'] as $player)
{
echo "Account id:" . $player['account_id'] . "\n";
echo "Player's slot:" . $player['player_slot'] . "\n";
//And other fields...
echo "Ability upgrades:";
foreach($player['ability_upgrades'] as $au)
{
echo "Ability:" . $au['ability'] . ", time:" . $au['time'] . ", level:";
echo $au['level'] . "\n";
}
}