Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript解析此JSON数据_Javascript_Php_Jquery_Json_Youtube - Fatal编程技术网

使用JavaScript解析此JSON数据

使用JavaScript解析此JSON数据,javascript,php,jquery,json,youtube,Javascript,Php,Jquery,Json,Youtube,我们有一个可用的PHP函数,可以使用YouTube API v3获取特定的YouTube视频信息 我们正试图使用JavaScript(jQuery)做同样的事情。问题是,使用PHP函数会导致页面在检索数据时加载速度非常慢。我们希望使用JavaScript可以在YouTube请求数据之前(或期间)加载页面 首先,这是我们其中一个视频的示例url(您需要API密钥才能自己查看返回的信息): 该特定url将返回以下信息: { "kind": "youtube#videoListResponse",

我们有一个可用的PHP函数,可以使用YouTube API v3获取特定的YouTube视频信息

我们正试图使用JavaScript(jQuery)做同样的事情。问题是,使用PHP函数会导致页面在检索数据时加载速度非常慢。我们希望使用JavaScript可以在YouTube请求数据之前(或期间)加载页面

首先,这是我们其中一个视频的示例url(您需要API密钥才能自己查看返回的信息):

该特定url将返回以下信息:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"jOXstHOM20qemPbHbyzf7ztZ7rI/qRFx1vTFF-k7dkRzNB5rGQ-dqiQ\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "\"jOXstHOM20qemPbHbyzf7ztZ7rI/2yn7rCfXCu0o-GNVtMEQqYssSpE\"",
   "id": "ce5KbCTfHoA",
   "statistics": {
    "viewCount": "33169",
    "likeCount": "281",
    "dislikeCount": "3",
    "favoriteCount": "0",
    "commentCount": "85"
   }
  }
 ]
}
我们正在尝试使用JavaScript检索此视频的likeCount和dislikeCount

我们可以通过以下方式使用PHP实现这一点:

function getVideoRatings() {
    $JSON = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id={VIDEO_ID}&key={YOUR_API_KEY}");
    $json_data = json_decode($JSON, true);

    $likes = $json_data['items'][0]['statistics']['likeCount'];
    $dislikes = $json_data['items'][0]['statistics']['dislikeCount'];

    /* some other code... */
}
这将成功解析google返回的json信息,并返回视频的likes(likeCount)和dislikes(dislikeCount)

我们希望使用JavaScript(jQuery)实现这一点。有人能帮我弄清楚吗

我真的很感激任何朝着正确方向的帮助或碰撞

谢谢


这应该行得通。使用jQuery文档。

使用AJAX从服务器检索,然后将其传递给客户端。因此,我认为AJAX是一种很棒的方法。然而,在尝试让ajax工作了几天之后,我已经放弃了。如果你能至少为我发一个片段,那将非常有帮助。谢谢你的反馈!阅读您链接的教程。谢谢你提供的额外信息。太好了,我会尝试一下,让你知道它是怎么回事。谢谢你,丹特兹,你不能这么做。在你可以这么做之前把它解析成一个对象。所以我用这个例子,它没有返回任何东西。奥尔德林,你能给我举个例子,说明如何把它解析成一个对象并显示结果吗?请原谅我对这个问题的无知,我还有很多要学的。感谢使用
$.parseJSON($yourDataHere)这实际上不需要$.parseJSON()函数就可以工作。谢谢大家,这真的很有帮助。
function getVideoRatings() {
    $JSON = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id={VIDEO_ID}&key={YOUR_API_KEY}");
    $json_data = json_decode($JSON, true);

    $likes = $json_data['items'][0]['statistics']['likeCount'];
    $dislikes = $json_data['items'][0]['statistics']['dislikeCount'];

    /* some other code... */
}
$.getJSON("https://www.googleapis.com/youtube/v3/videos?part=statistics&id=ce5KbCTfHoA&key={YOUR_API_KEY}", function( data ) {
    var likes = data['items'][0]['statistics']['likeCount'];
});