1

JSFiddle と Chrome を使用してコンソールでこのエラーが発生します: http://jsfiddle.net/YdM8n/2/ jQuery で Flickr フィードを解析しようとすると。

コード:

// a flickr rss feed i am trying to parse.
var yql3 = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fapi.flickr.com%2Fservices%2Ffeeds%2Fphotos_public.gne%3Fid%3D76250020%40N04%26lang%3Den-us%26format%3Drss_200%22&format=json&diagnostics=true&callback=?";

$.getJSON(yql3, function(cbfunc) {

    var eachImageArr = $(cbfunc.query.results.rss.channel.item);

    $(eachImageArr).each(function() {
        $('body').append(this.description);
    });

});​

ご協力いただきありがとうございます!

4

2 に答える 2

3

問題は、配列の 18 番目の要素で、記述が実際には配列であり、最初の要素が期待どおりであり、2 番目の要素が別のオブジェクトであることです。

description: Array[2]
0: "            <p><a href="http://www.flickr.com/people/jonathanbell/">jonathanbell.ca</a> posted a photo:</p>↵    ↵&lt;p><a href="http://www.flickr.com/photos/jonathanbell/7290239398/" title="120405_sophia_004"><img src="http://farm8.staticflickr.com/7075/7290239398_3c4b7905da_m.jpg" width="180" height="240" alt="120405_sophia_004" /></a></p>↵↵<p>sophia dishaw</p>"
1: Object
    content: "<p>sophia dishaw</p>"
    type: "html"

2 番目のフィールドが何であるかを説明できるほど flickr API に精通していませんが、名前のようです。

于 2012-11-02T19:51:41.487 に答える
2

返された実際の JSON を見ると、descriptionアイテムの可能な形式が次のようになることがわかります。

"description": ["html stuff", {some object}]

すべての説明をループするときに、それが配列かどうかを確認できます。配列の場合は[0]、本文にインデックスを追加します。何かのようなもの:

http://jsfiddle.net/YdM8n/5/

var eachImageArr = cbfunc.query.results.rss.channel.item;

$.each(eachImageArr, function() {
    if ($.isArray(this.description)) {
        $("body").append(this.description[0]);
    } else {
        $("body").append(this.description);
    }
});

しかし明らかに、他の特別なケースが発生しないようにするために、API をさらに調査する必要があります... または、少なくとも同様のことを説明しようとします。

于 2012-11-02T20:12:54.683 に答える