0

私は JavaScript と YouTube API の初心者です

xml ファイルからいくつかのデータにアクセスしようとしています。YouTube プレイリストから生成されたアトム ファイルです。リスト内の各ビデオのサムネイル、ビデオ ID、および説明を抽出できるようにしたいと考えています。

ここに私がまとめたいくつかのjsがあります:

$.get("playlist.xml", function(xml){
var videos = $.xml2json(xml);
alert(videos.entry[0].title);
console.log(videos);    
});

playlist.xml には、次への呼び出しから生成されたファイルが含まれています。

https://gdata.youtube.com/feeds/api/playlists/playlistid?v=2

ここで、playlistid は有効なプレイリスト ID です。

このファイルには、予想されるすべての xml が含まれており、次の行で (JQuery XML to JSON プラグインを介して) json に変換されます。

var videos = $.xml2json(xml);

上部のコードは、予想される出力、つまりプレイリストの最初のビデオのタイトルを提供します。

他のデータにアクセスしようとすると、問題が発生します。たとえば、サムネイルは次の xml にあります。

entry[].media:group.media:thumbnail[]

json への変換後、「:」は「$」に変換されるようですが、次のいずれかを試すとエラー エラーが発生します。

    $.get("playlist.xml", function(xml){
var videos = $.xml2json(xml);
alert(videos.entry[0].media:group.media:thumbnail[0]);
console.log(videos);    
});

また:

    $.get("playlist.xml", function(xml){
var videos = $.xml2json(xml);
alert(videos.entry[0].media$group.media$thumbnail[0]);
console.log(videos);    
});

エラーは次のバリエーションです。

TypeError: videos.entry[0].media$group is undefined

とても基本的なことを理解していないように感じますが、私の人生では、それが何であるかはわかりません.

役立つ場合は、サンプルのプレイリスト xml ファイルを次に示し ます。

4

2 に答える 2

0

下部の編集を参照してください

&alt=json を追加しましたが、JSON を JSONP に変換するためのコールバックで失われました。これが私の現在のコードです:

var ytPlaylist="PLjyIfAzy9xVUWYcLK54OPd1lDXzMROK_5";    
var jsonFileUrl="https://gdata.youtube.com/feeds/api/playlists/"+ytPlaylist+"?v=2&alt=json";


$.get(jsonFileUrl, function(data) {
alert("Data: " + data.logo);

});

そして、アラートボックスには「データ:未定義」のみが表示されます

今、もしそうなら

$.get(jsonFileUrl, function(data) {
alert("Data: " + data); 
});

警告ボックスにファイル全体が表示されるので、データはそこにありますが、アクセスできません。また、次のような方法でアクセスしようとしました:

data.feed.logo
data[0].feed[0].logo
data[0].logo 
data.logo.$t

編集:理由はまだわかりませんが、これ(以下)は機能しています

$.getJSON(jsonFileUrl, function(response) {
alert("Data: " + response.feed.entry[0].media$group.media$description.$t);
});
于 2013-04-27T14:16:14.737 に答える