组合两个JSON文件

Combining two JSON files

本文关键字:两个 JSON 文件 组合      更新时间:2023-09-26

现在我正在输入一个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
            }
        })
    })
}

希望这能有所帮助。

谢谢Joe。到目前为止,我得到的是:$.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
})
//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;
}
});
});
})();

我好像有点不对劲。你是对的,我不一定需要把两者结合起来。更多的人需要将这些帖子显示在"锁定"的位置,然后从原始提要移到其他位置。

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
        }
    ]
}