将json值转换为php
我试图使用防暴API,但我有点卡住了。 下面是页面的输出:将json值转换为php,php,json,Php,Json,我试图使用防暴API,但我有点卡住了。 下面是页面的输出: { "36694730": [{ "name": "Twitch's Marksmen", "tier": "GOLD", "queue": "RANKED_SOLO_5x5", "entries": [{ "playerOrTeamId": "36694730", "playerOrTeamName": "OU2S", "division": "V",
{
"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;
?>
这两种方法都不适用于我,感谢您抽出时间阅读此内容。您不能直接访问此属性。解码后必须进入数组
foreach ($get as $response) {
foreach ($response as $element) {
echo $element['name']; //Twitch's Marksmen
}
}
您不能直接访问该属性。解码后必须进入数组
foreach ($get as $response) {
foreach ($response as $element) {
echo $element['name']; //Twitch's Marksmen
}
}
有一个多维数组作为来自
json\u decode
的响应。你应该走这边-
$get = json_decode($json, true);
foreach ($get as $firstElement) {
foreach ($firstElement as $secondElement) {
echo $secondElement['name'];
}
}
有一个多维数组作为来自
json\u decode
的响应。你应该走这边-
$get = json_decode($json, true);
foreach ($get as $firstElement) {
foreach ($firstElement as $secondElement) {
echo $secondElement['name'];
}
}
因为您正在将数据解码到数组中(第二个参数
json\u 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']代码>
希望这有帮助。因为您正在将数据解码到数组中(第二个参数json\u 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']代码>
希望这有帮助。完成了任何基本调试,比如var\u dump($json,$get)
以查看实际收到的内容?你只是假设这段代码永远不会出错,这正是错误的态度。在与外部资源打交道时,永远不要假设自己成功。总是假设失败,检查失败,把成功当作惊喜。即使您的PHP在语法上是100%正确的,如果这是错误的url呢?如果该站点关闭了,或者您的计算机和该站点之间出现网络故障,该怎么办?我会使用CURL进行调用…可能重复任何基本调试,如var\u dump($json,$get)
,以查看您实际收到的内容?你只是假设这段代码永远不会出错,这正是错误的态度。在与外部资源打交道时,永远不要假设自己成功。总是假设失败,检查失败,把成功当作惊喜。即使您的PHP在语法上是100%正确的,如果这是错误的url呢?如果那个站点关闭了,或者你的机器和那个站点之间出现了网络故障怎么办?我会用CURL来做这个调用…可能是重复的像个魔咒一样工作