无法在PHP

时间:2017-04-15 07:49:50

标签: php arrays json

我一直试图访问" videoID"以下数组中的JSON对象:

{
 "kind": "youtube#searchListResponse",
 "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/652q8gXfNeBDSoSQrv8VCrAv0Ho\"",
 "nextPageToken": "CAUQAA",
 "regionCode": "AU",
 "pageInfo": {
  "totalResults": 25,
  "resultsPerPage": 5
 },
 "items": [
  {
   "kind": "youtube#searchResult",
   "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/31YuvB6enDzigibEfdgUq4-ZYc0\"",
   "id": {
    "kind": "youtube#video",
    "videoId": "Ldx1nwBd4AY"
   },
   "snippet": {
    "publishedAt": "2017-04-14T21:00:00.000Z",
    "channelId": "UC-z95jtL6-oDyFueQPoZLfQ",
    "title": "HOW TO PLAY NINTENDO DS GAMES ON iPHONE iOS 10 FOR FREE (NDS4iOS) - NDS4IOS Tutorial - Tech Scout",
    "description": "LIKE THE VIDEO + TURN ON CHANNEL NOTIFICATIONS! HOW TO PLAY NINTENDO DS GAMES ON iPHONE iOS 10 FOR FREE (NDS4iOS) - NDS4IOS ...",
    "thumbnails": {
     "default": {
      "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/default.jpg",
      "width": 120,
      "height": 90
     },
     "medium": {
      "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/mqdefault.jpg",
      "width": 320,
      "height": 180
     },
     "high": {
      "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/hqdefault.jpg",
      "width": 480,
      "height": 360
     }
    },
    "channelTitle": "Tech Scout",
    "liveBroadcastContent": "none"
   }
  },

它继续从那里开始,但我一直试图访问" videoID"使用以下代码对象:

$youtubeurl = "https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=" . $channelid . "&key=" . $api;
$youtubeinfo = file_get_contents($youtubeurl);
$youtubeencoded = json_decode($youtubeinfo, true);
$youtubevideoid = $youtubeencoded["data"]["items"][0]["videoID"];
echo $youtubevideoid;

我没有太多使用JSON的经验所以我只是从Stack Overflow上的另一个问题获得了第4行(我认为是问题)的代码。

3 个答案:

答案 0 :(得分:3)

您的JSON中没有节点data。您还错过了节点id。此外,它是videoId而不是videoID

$youtubevideoid = $youtubeencoded["items"][0]["id"]["videoId"];

答案 1 :(得分:1)

尝试

$youtubevideoid = $youtubeencoded["items"][0]["id"]["videoId"];

P.S。更新

答案 2 :(得分:0)

你的json文件是错误的。就像那样

{
   "kind": "youtube#searchListResponse",
   "etag":    "\"m2yskBQFythfE4irbTIeOgYYfBU/652q8gXfNeBDSoSQrv8VCrAv0Ho\"",
   "nextPageToken": "CAUQAA",
   "regionCode": "AU",
   "pageInfo": {
       "totalResults": 25,
       "resultsPerPage": 5
   },
   "items": [
     {
         "kind": "youtube#searchResult",
          "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/31YuvB6enDzigibEfdgUq4-ZYc0\"",
         "id": {
            "kind": "youtube#video",
             "videoId": "Ldx1nwBd4AY"
           },
          "snippet": {
              "publishedAt": "2017-04-14T21:00:00.000Z",
              "channelId": "UC-z95jtL6-oDyFueQPoZLfQ",
              "title": "HOW TO PLAY NINTENDO DS GAMES ON iPHONE iOS 10 FOR FREE (NDS4iOS) - NDS4IOS Tutorial - Tech Scout",
             "description": "LIKE THE VIDEO + TURN ON CHANNEL NOTIFICATIONS! HOW TO PLAY NINTENDO DS GAMES ON iPHONE iOS 10 FOR FREE (NDS4iOS) - NDS4IOS ...",
             "thumbnails": {
               "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/default.jpg",
              "width": 120,
               "height": 90
    },
          "medium": {
             "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/Ldx1nwBd4AY/hqdefault.jpg",
               "width": 480,
               "height": 360
          }
       },
      "channelTitle": "Tech Scout",
      "liveBroadcastContent": "none"
      }
   ]
 }

然后你可以使用这段代码

$data = json_decode($youtubejson,true);
echo $data["kind"];