Печать данных из JSON с помощью PHP
я хочу напечатать конкретные данные из JSON.
У меня есть следующий код:
<?php
$summoner = "ErickReplay";
$key = "mikey";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://lan.api.riotgames.com/api/lol/LAN/v1.4/summoner/by-name/'.$summoner.'?api_key='.$key);
$result = curl_exec($ch);
curl_close($ch);
$obj = json_decode($result);
print_r($obj);
?>
то же самое печатает следующее:
stdClass Object ( [erickreplay] => stdClass Object ( [id] => 143048 [name] => ErickReplay [profileIconId] => 547 [revisionDate] => 1496449271000 [summonerLevel] => 30 ) )
я хочу напечатать только идентификатор, который будет 143048. Я пробовал по-разному, но не могу получить его.
2
Author: Erick Estevez, 2017-06-03
2 answers
Правильный способ-следовать иерархической схеме объекта.
В случае, если вы показываете ответ объекта.
stdClass Object ( [erickreplay] => stdClass Object ( [id] => 143048 //...
^^^^^^^^^^^ key 1 ^^ key 2
Будет выглядеть следующим образом, сохраняя каждый ключ, как они появляются в порядке иерархии.
echo $obj->erickreplay->id;
^^^^^^^^^^^ ^^
key 1 key 2
Ошибка, которую вы указываете, Undefined property: stdClass::$ErickReplay in...
то, что он говорит, заключается в том, что ключ, который вы ищете $obj->ErickReplay
, не определен.
1
Author: OscarR, 2017-06-03 09:51:19
Еще один способ взглянуть на это - прочитать ответ как массив, а не как объект.
$obj = json_decode($result, true);
И как прочитать серьезный ответ:
$obj['erickreplay']['id'];
0
Author: Jakala, 2017-06-03 10:26:15