json values into php


json values into php

我正在尝试使用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'];
    }
}