2014-09-24 80 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 
     } 
    ] 
}