(Java,JSON)使用Youtube API从带有已删除项目的播放列表中获取数据



我在SO上搜索了很多主题,结果走得很远。但现在我遇到了一个问题,关于如何正确读取此URL中的数据:http://gdata.youtube.com/feeds/api/playlists/PLsksxTH4pR3KtrWWeupRy5h0Di7N_MufB?v=2&alt=jsonc&最大结果=50

在位置22,有一个视频被Youtube拒绝,因此被屏蔽,所以人们无法观看。我现在的问题是,我无法成功跳过该条目并继续下一个。即使上面的URL中有50个条目,我的应用程序也只会显示21个,停止在被阻止的视频所在的位置

我试着使用该视频的JsonObject"状态",并检查它是否有"被拒绝"的值,但我做不到。

欢迎任何帮助,提前感谢:)

这是我的代码:

ArrayList<String> msg = new ArrayList<String>();
ArrayList<String> title = new ArrayList<String>();
ArrayList<Bitmap> thumb = new ArrayList<Bitmap>();
public void getData()
{
    HttpClient httpclient = new DefaultHttpClient();
    httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
    HttpGet request = new HttpGet("http://gdata.youtube.com/feeds/api/playlists/PLsksxTH4pR3KtrWWeupRy5h0Di7N_MufB?v=2&alt=jsonc&max-results=50");
    try
    {
        HttpResponse response = httpclient.execute(request);
        HttpEntity resEntity = response.getEntity();
        String _response= EntityUtils.toString(resEntity); // content will be consume only once
        JSONObject json = new JSONObject(_response);
        JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i).getJSONObject("video");
            String title1 = jsonObject.getString("title");
            title.add(title1);
            String thumbUrl = jsonObject.getJSONObject("thumbnail").getString("sqDefault");
            URL url1 = new URL(thumbUrl);
            Bitmap bmp = BitmapFactory.decodeStream(url1.openConnection().getInputStream());
            thumb.add(bmp);
            String url;
            try {
                url = jsonObject.getJSONObject("player").getString("default");
                msg.add(url);
            } catch (JSONException ignore) {
            }
        }
    }
    catch(Exception e1)
    {
        e1.printStackTrace();
    }
    httpclient.getConnectionManager().shutdown();
}

我试图使用该视频的JsonObject"状态",并检查它有"拒绝"的值,但我做不到。

要从items JSONArray中获取所有不包含阻止项目的项目。使用JSONObject.在从video访问其他密钥之前,检查status对象是否可用的方法JSONObject.like:

JSONObject jsonObject = jsonArray.getJSONObject(i).getJSONObject("video");
if(jsonObject.has("status")){
  // ignore video object
}else{
  //... get other thumbnail, player objects
}

相关内容

  • 没有找到相关文章

最新更新