2014-09-24 56 views
2

现在我喂一个JSON饲料和显示组合两个JSON文件

(function() { 


    var twitterLikes = "data.json"; 

    //Grab the JSON 
    $.getJSON(twitterLikes, { 
     format: "json" 
    }) 

    .done(function (data) { 

     //iterate through each item 
     $.each(data.likes, function (i, likes) { 

      //Print out JSON results 
      var twitterLike = '<div class="twitterLike" id="' + likes.id + '"><img class="twitterLikeImage" src="' + likes.image + '"><p class="twitterLikeCaption">' + likes.caption + '</p><a class="twitterLikeLink" href="' + likes.link + '" target="_blank">See original post</a></div>'; 

      //Append printed reuslts to parent container 
      document.getElementById("twitterLikes").innerHTML += twitterLike; 

      //Cap the results 
      if (i === 12) { 
       return false; 
      } 
     }); 
    }); 
})(); 

这需要修改的内容。我有另一个JSON文件,我创建的某种“锁定”文件,它基本上锁定一个特定的职位在一个给定的位置。

{ "locked":[{"id":90210, "position":3}] } 

我该如何修改我的函数来解析第二个JSON文件(锁定)。基本上看看锁定的文件,看看是否有一个ID和位置。将该ID与第一个JSON文件(data.json)匹配。根据id将该帖子锁定到特定位置。浏览data.json并绘制其余的帖子跳过锁定的位置。最多也只能显示12个。

+0

你有什么企图做到这一点? – 2014-09-24 14:22:37

+0

我不熟悉如何组合两个json提要。 – jamesfr 2014-09-24 14:25:56

+0

我可以使用.extend吗?但是我会如何锁定这个位置? – jamesfr 2014-09-24 14:31:57

回答

0

我不知道我理解你的锁定机制,但在某些变型(我用lodash帮助 - 但它不是必要的)

$.getJSON("data.json", { format: "json" }) 
.done(function (data) { 

    $.getJSON("locked.json", {format: "json"}) 
    .done(function(locked){ 

     var lockedIds = _.map(locked, function(l){ 
      return l.id 
     }) 

     $.each(data.likes, function(i, likes){ 

      // If not locked then process 
      if (!_.contains(likes.id, lockedIds)){ 
       // do something here 
      } 

     }) 

    }) 

} 

希望这有助于。

+0

谢谢乔。这是我到目前为止: – jamesfr 2014-09-24 14:55:42

0

谢谢乔。这是我走到这一步: $ .getJSON( “data.json”,{格式为: “JSON”})

.done(function(data) { 
$.getJSON("locked.json", {format: "json"}) 
.done(function(locked){ 

var lockedIds = _.map(locked, function(l){ 
return l.id 
}) 

//iterate through each item 
$.each(data.likes, function(i, likes) { 
if (!_.contains(likes.id, lockedIds)){ 

//Print out JSON results 
var twitterLike='<div class="twitterLike" id="'+likes.id+'"><img class="twitterLikeImage" src="'+likes.image+'"><p class="twitterLikeCaption">'+likes.caption+'</p><a class="twitterLikeLink" href="'+likes.link+'" target="_blank">See original post</a></div>'; 

//Append printed reuslts to parent container 
document.getElementById("twitterLikes").innerHTML+=twitterLike; 
} 
//Cap the results 
if (i === 12) { 
return false; 
} 
}); 
}); 
})(); 

我似乎掉一点点。你是对的,我不一定需要把两者结合起来。更多需要将这些帖子显示在“锁定”位置,然后从原始Feed移动到其余位置。

DATA.JSON

{ 
    "count": 2, 
    "likes": [ 
     { 
      "link": "http://twitter.com/p/tQc2YNh3ox/", 
      "caption": "Yada", 
      "profile_pic": "", 
      "likes": 27, 
      "id": "815278414704900657_1364335477", 
      "image": "http://twitter.com/pic1.png" 
     }, { 
      "link": "http://twitter.com/p/tQc2YNh3ox2/", 
      "caption": "Yada2", 
      "profile_pic": "", 
      "likes": 27, 
      "id": "815078520979421610_1364335477", 
      "image": "http://twitter.com/pic2.png" 
     } 
    ] 
} 

LOCKED.JSON

{ 
    "likes": [ 
     { 
      "id": "815278414704900657_1364335477", 
      "position": 3 
     }, { 
      "id": "815078520979421610_1364335477", 
      "position": 5 
     } 
    ] 
}