json_decode 抽搐 api

json_decode for twitch api

好吧,我正在尝试使用 json_decode 通过他们的 Steam ID 获取用户的 twitch 名称,但是我遇到了一个错误,而且我已经阅读了其他用户的问题,但我离修复它还差得很远.

这是我的代码:

$getcontents = file_get_contents('http://api.twitch.tv/api/steam/76561198049928469');
var_dump(json_decode($getcontents));
$twitchname = $getcontents ['name'];
echo $twitchname;

这是我的错误:

Warning: Illegal string offset 'name' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Portfolio -- Website\forum\index.php on line 29

我查看了 twitch 开发论坛上的文档,但找不到解决此问题的方法。

我也查看了这些论坛上的答案,但找不到解决此问题的方法。

忘了这个; vardump 输出:

object(stdClass)#2 (2) { ["_id"]=> int(59956494) ["name"]=> string(10) "riggster98" } 

所以它与 json_decode 一起工作的方式是,如果你打算像普通的 php 变量一样使用它,那么你必须将 true 标志传递给 json_decode 函数.然后您可以使用 $content['name'] 并获得预期的结果。

但是如果你想使用对象,你可以简单地 json_decode 内容,然后使用 $content->name 来提取内容。

像这样

    $getcontents = file_get_contents('http://api.twitch.tv/api/steam/76561198049928469');

    $contents = json_decode($getcontents);

    echo "<pre>";
    print_r($contents->name);
    echo "</pre>";

这修复了不保存 JSON 解码内容并将参数传递给 return 数组而不是对象的问题:

$getcontents = file_get_contents('http://api.twitch.tv/api/steam/76561198049928469');
$getcontents = json_decode($getcontents, true);
$twitchname = $getcontents['name'];
echo $twitchname;