尝试使用 youtube api 从 json 中提取视频 ID

Posted

技术标签:

【中文标题】尝试使用 youtube api 从 json 中提取视频 ID【英文标题】:trying to extract video id from json using youtube api 【发布时间】:2019-08-23 07:25:24 【问题描述】:

我正在尝试从 json 中提取“videoid”(它是一个字符串) 从 youtube api 获得并希望使该“videoid”可用于另一个调用 player.loadVideo("Videoid") 我尝试过的 .java 文件 提取它但它返回 null


 "kind": "youtube#searchListResponse",
 "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/twPDbB5irYgF-0BnQZIeukjX7k0\"",
 "regionCode": "CA",
 "pageInfo": 
  "totalResults": 1,
  "resultsPerPage": 5
 ,
 "items": [
  
   "kind": "youtube#searchResult",
   "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/SmOmHZrRW-QMb9RisiuAxWDkXao\"",
   "id": 
    "kind": "youtube#video",
   <b> "videoId": "8ykDBg-b4QE"<b>
   ,
   "snippet": 
    "publishedAt": "2019-03-30T11:43:48.000Z",
    "channelId": "UCk4o4gWFuU2YTS50ym4RbXg",
    "title": "Streaming...",
    "description": "Become a sponsor: xPfsD Multistreaming with ream.io/ 
      veraise.com/channel/622995 Donate: ...",
    "thumbnails": 
     "default": 
      "url": "vi/8ykDBg-b4QE/default_live.jpg",
      "width": 120,
      "height": 90
     ,
     "medium": 
      "url": ".ytimg.com/vi/8ykDBg-b4QE/mqdefault_live.jpg",
      "width": 320,
      "height": 180
     ,
     "high": 
      "url": ".ytimg.com/vi/8ykDBg-b4QE/hqdefault_live.jpg",
      "width": 480,
      "height": 360
     
    ,
    "channelTitle": "Heavenly Controller",
    "liveBroadcastContent": "live"
   
  
 ]



            JSONArray JA = new JSONArray(data);
            for(int i =0 ;i <JA.length(); i++)
            JSONObject JO = (JSONObject) JA.get(i);
            //singleParsed =  //"Name:" + JO.get("name") + "\n"+
            // JO.get("videoId") + "\n"
            //"Contact:" + JO.get("contact") + "\n"+
            // "Country:" + JO.get("country") + "\n"
                               // ;

            // dataParsed = dataParsed + singleParsed +"\n" ;
            System.out.println(JO);

基本上期望值数据="8ykDBg-b4QE" 然后可以使用 在 player.java 中通过函数 player.loadVideo("data")

【问题讨论】:

你有做过什么解析吗? 我正在考虑提取 @talha 所做的值。 【参考方案1】:

假设我们有一个用于此响应的 jsonObject。 现在根据您的 json 响应,以下代码将获取 videoId:

    JSONArray jArr = jsonObject.getJSONArray("items");
    for(int i =0; i < jArr.length(); i++)
    
        // getting object from items array 
        JSONObject itemObj = jArr.getJSONObject(i);

        // getting id object from item object 
        JSONObject idObj = itemObj.getJSONObject("id");

        // getting videoId from idObject 
        String videoId = idObj.getString("videoId"); 
    

【讨论】:

以上是关于尝试使用 youtube api 从 json 中提取视频 ID的主要内容,如果未能解决你的问题,请参考以下文章

使用 JSON 从 Youtube API 返回视频时长

使用 PHP for 和 foreach 循环从 JSON 数据中检索视频信息时遇到问题 - YouTube API 3

如何使用 javascript API 和 json 获取 youtube 播放列表

使用 YouTube API 从带有 JSON 提要的视频中获取所有评论

循环多个 JSON 请求(YouTube 数据 API)

如何从 googleapi Youtube API 获取 XML 响应