-1

我很难从这里的 API 获取一些 json 数据。基本上我想获取文件内容,然后将“meta_game”分配给一个变量,我还希望将“channel_count”分配给一个变量。正如您在此处看到的,我为这两个实例尝试了 2 种不同的方法,但目前都不起作用。

$json = file_get_contents($chan);
$json_data = unserialize($json);
$gameName = json_decode($json)->meta_game;
$viewerCount = $json_data['channel_count'];

下面是一个 URL 示例,它将从以下位置获取:http ://api.justin.tv/api/stream/list.json? channel= + 频道名称。

4

3 回答 3

3

为什么要反序列化数据?它不是必需的

$json = file_get_contents('http://api.justin.tv/api/stream/list.json?channel=' . $channelName);
$jsonData = json_decode($json);

$gameName = $jsonData->meta_game;

$viewerCount = $jsonData->channel_count;

当然,您可能需要检查通过$jsonData对象的路径以找到您的最终值,因为我没有解析它并且不能保证它们位于第一个节点。

更新:因为我不能不理会,所以我检查了这个以查看 API 的响应是什么

因为它首先返回一个数组,所以您的路径将是

$jsonData[0]->channel->meta_game;

$jsonData[0]->channel_count;

假设您在响应中只有 1 个频道

于 2013-05-10T08:46:41.380 回答
1

你可以试试下面的代码

<?php
$json = file_get_contents('http://api.justin.tv/api/stream/list.json?channel=');
$gameName = json_decode($json,true);
$new_arr = array();
foreach($gameName as $g){
print_r( $g['channel']['meta_game']);
 array_push($new_arr,$g['channel']['meta_game']);
}    
?>
于 2013-05-10T09:00:07.647 回答
0
(function($){
    $.fn.fetch = function() {
        $.ajaxSetup({ cache: true });
        //var optionsWithDefaults = $.extend(defaults, options);
        return this.each(function() {
            var obj = [];
            $.getJSON(' http://api.justin.tv/api/stream/list.json?channel=xxx',
                function(data) {
                    $.each(data, function(i, feed) {
                        if(feed.channel_count !== undefined) {
                            obj.push(feed.channel_count);
                        }
                    });
                }
            );
        });
    };
})(jQuery);
于 2013-05-10T09:00:02.553 回答