Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将json值转换为php_Php_Json - Fatal编程技术网

将json值转换为php

将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",

我试图使用防暴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;

?>


这两种方法都不适用于我,感谢您抽出时间阅读此内容。

您不能直接访问此属性。解码后必须进入数组

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来做这个调用…可能是重复的像个魔咒一样工作