我很难从API获取一些json数据。基本上我想获取文件内容,然后将“meta_game”分配给变量,我还希望将“channel_count”分配给变量。正如你在这里看到的,我为这两个实例尝试了两种不同的方法,但目前都没有。
$json = file_get_contents($chan);
$json_data = unserialize($json);
$gameName = json_decode($json)->meta_game;
$viewerCount = $json_data['channel_count'];
下面是一个网址示例:http://api.justin.tv/api/stream/list.json?channel= +频道名称。
答案 0 :(得分: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个频道
答案 1 :(得分: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']);
}
?>
答案 2 :(得分: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);