使用JSON解决API问题

时间:2014-01-10 13:24:26

标签: php json api

我不确定如何描述这个但是我走了。我目前正在建立一个英雄联盟网站,我正在使用SoloMidNets框架进行API。 github可以在这里找到:https://github.com/solomidnet/php-pvp-api

这是我的代码:

            <?php          

            $summoner = $api->summoner_by_name('na', $_SESSION['input_name']);

            //This is grabbing the JSON information array from the API
            $summoner1 = $api->league('na', $summoner->id);

            var_dump($summoner1);

            echo '<ul>'.'Summoner Name: '.$_SESSION['input_name'].'</ul>';
            echo '<ul>'.'Rank: './*CODE TO GRAB RANK FROM JSON?*/'</ul>';
            echo '<ul>'.'Tier:'./*CODE TO GRAB TIER FROM JSON?*/'</ul>';
            echo '<ul>'.'League Points: './*CODE TO GRAB LEAGUE POINTS FROM JSON?*/'</ul>';
            echo '<ul>'.'Wins: './*CODE TO GRAB WINS FROM JSON?*/'</ul>';
            echo '<ul>'.'Losses: './*CODE TO GRAB LOSSES FROM JSON?*/'</ul>';

            session_destroy();


        ?>

I var_dump()时的格式;它看起来像这样:http://pastebin.com/WGKwmSAz

我需要帮助的快速摘要

我想知道如何调用我的var的某些元素 - $summoner1

另外,我如何选择只选择哪个部分 $summoner1->playerName = PLAYERIMSEARCHINGFORDATAONLY;

任何帮助都会受到赞赏!
非常感谢您阅读:)

2 个答案:

答案 0 :(得分:0)

$ summoner1是一个json数组,可以通过以下方式解码为php关联数组:

$mySummoner1 = json_decode($summoner1); //will store everything as $key=>$value

访问数组的值知道它的键就像:

$myValue = $mySummoner1['myKey'];

答案 1 :(得分:0)

如果$summoner1包含您的json字符串,则必须使用true作为第二个参数对其进行解码才能生成关联数组。

然后根据您的需要修改您的代码。

$leagues = json_decode($response, true);

echo "<h1>LEagues</h1>";
foreach ($leagues as $league) {
echo <h2>{$league['name']}</h2>";
    foreach ($league["entries"] as $player) {
    echo "<ul><li>Summoner Name: {$player['playerOrTeamName']} ({$player['playerOrTeamId']})</li>";
        echo <li>'.'Rank: '. $player["entries"]["rank"] . '</li>';
        echo '<li>'.'Tier:'. $player["entries"]["tier"] . '</li>';
        echo '<li>'.'League Points: '.$player["entries"]["leaguePoints"].'</li>';
        echo '<li>'.'Wins: '.$player["entries"]["wins"].'</li>';
        echo '<li>'.'Losses: '.$player["entries"]["losses"].'</li></ul>';
}

我已将ul节点更改为li节点。

参考:http://www.php.net/json_decode

更新:根据新的数据格式更改了代码。