我正在尝试使用RIOT API,但我有点卡住了。下面是页面的输出:
{
"36694730": [{
"name": "Twitch's Marksmen",
"tier": "GOLD",
"queue": "RANKED_SOLO_5x5",
"entries": [{
"playerOrTeamId": "36694730",
"playerOrTeamName": "OU2S",
"division": "V",
"leaguePoints": 0,
"wins": 207,
"losses": 201,
"isHotStreak": false,
"isVeteran": false,
"isFreshBlood": true,
"isInactive": false
}]
}]}
我实际上试着做的是:
<?php
$link = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/36694730/entry?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$json = file_get_contents($link);
$get = json_decode($json, true);
// echo $get['name'];
echo $get->name;
?>
都不适合我,谢谢你花时间阅读这篇文章。
因为您正在解码数据到数组(json_decode
的第二个参数设置为true
)。解码后的数组应该是这样的,
Array
(
[36694730] => Array
(
[0] => Array
(
[name] => Twitch's Marksmen
[tier] => GOLD
[queue] => RANKED_SOLO_5x5
[entries] => Array
(
[0] => Array
(
[playerOrTeamId] => 36694730
[playerOrTeamName] => OU2S
[division] => V
[leaguePoints] => 0
[wins] => 207
[losses] => 201
[isHotStreak] =>
[isVeteran] =>
[isFreshBlood] => 1
[isInactive] =>
)
)
)
)
)
你的代码应该是:-
echo $get['36694730']['0']['name'];
不能直接访问该属性。你必须在解码后进入数组。
foreach ($get as $response) {
foreach ($response as $element) {
echo $element['name']; //Twitch's Marksmen
}
}
有一个多维数组作为json_decode
的响应。你应该走这边-
$get = json_decode($json, true);
foreach ($get as $firstElement) {
foreach ($firstElement as $secondElement) {
echo $secondElement['name'];
}
}