组合两个JSON文件
问题描述:
现在我喂一个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个。
答
我不知道我理解你的锁定机制,但在某些变型(我用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
答
谢谢乔。这是我走到这一步: $ .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
}
]
}
你有什么企图做到这一点? – 2014-09-24 14:22:37
我不熟悉如何组合两个json提要。 – jamesfr 2014-09-24 14:25:56
我可以使用.extend吗?但是我会如何锁定这个位置? – jamesfr 2014-09-24 14:31:57