if if在使用jQuery解析JSON时遇到问题

时间:2014-07-23 23:02:50

标签: javascript jquery html twitter-bootstrap jquery-lazyload

我有一个JSON Feed,它有三种不同的可能性,可以解决照片URL的问题,因为我正在解析它并使用lazyload插件。

例如,如果没有照片,那么它是未定义的(见下文,我已经测试过该行独奏并且它可以正常工作)。如果有一张照片,则会出现在data.value.items [i] [" media:content"]。url。如果有多张照片,它会出现在data.value.items [i] [" media:content"] [i] .url(我在媒体中的位置:内容为0,1,2等,具体取决于存在的照片数量)。

链接和标题流畅。我只对照片有问题。

在此代码的当前版本中,我可以控制日志并看到所有内容都显示为分配了占位符照片(green_app.jpg)或链接到实际照片。然而,我无法将其显示在页面上。

$.getJSON('JSON URL HERE', function(data) {
    console.log(data);  

    var output = '';

    $.each(data.value.items, function(i, item){
        if(typeof data.value.items[i]["media:content"] === "undefined"){
            console.log("No photo");
            image = 'images/green_app.jpg';
        }
        else if (typeof data.value.items[i]["media:content"] === "object"){
            console.log("1 photo");
            image = data.value.items[i]["media:content"].url;
        }
        else {
            console.log("Multi photos");
            image = data.value.items[i]["media:content"][i].url;
        }

        console.log(image);

        output += '<ul class="media-list">';
        output += '<li class="media">';
        output += '<a class="pull-left" href="' + data.value.items[i].link  + '">';
        output += '<img data-original="' + image + '" class="media-object img-rounded lazy" height="120" width="120">';
        output += '</a><div class="media-heading"><a href="' + data.value.items[i].link  + '">';
        output += '<h4>' + data.value.items[i].title + '</h4></a></div></li></ul>';
    })

    $("#mainNews").html(output);
});

$(".lazy").lazyload();

1 个答案:

答案 0 :(得分:0)

你能不能检查

 else if (typeof data.value.items[i]["media:content"] === "object" && "url" in data.value.items[i]["media:content"]){
     console.log("1 photo");
     image = data.value.items[i]["media:content"].url;
  }