簡體   English   中英

使用jQuery的嵌套JSON提取

[英]Nested JSON fetch using jQuery

我正在嘗試從Yammer創建一種RSS Feed類型的消息顯示。

<script type="text/javascript">
    var cleanit = null;
    $(document).ready(function(){ cleanit = setInterval('callYammer()', 50);});
    function callYammer(){ 
        clearInterval(cleanit);
        $.getJSON("./yammer.feed?request=messages",function(json) {
            var objYammer = $("#yammerFeed");
            objYammer.html('');
            $.each(json.messages, function(i, m) {
                if(!m.replied_to_id && m.body.plain){
                    var data = "<li>" + m.body.plain;
                    $.getJSON("./yammer.feed?request=users&userid="+m.sender_id,function(jsonUser) {
                        //alert(jsonUser.full_name);
                        data = data + " - "+jsonUser.full_name;
                    });
                    data = data + "</li>";
                    objYammer.append(data);
                }
            });
        });
        return false;
    }
</script>

我想顯示消息及其用戶名。 但是最后,從firebug調試器中,我看到的是內部JSON數據沒有按我期望的那樣追加。 盡管通話打到並且數據來自通話,但是

data =“-” + jsonUser.full_name;

在對用戶的所有JSON調用之后被執行。

如何將用戶名從內部JSON調用追加到主要JSON數據?

你打線

data = data + "</li>";
objYammer.append(data);

在內部getJSON AJAX調用之后的代碼中,但這可能導致這些行在AJAX請求完成之前執行。 將代碼放入內部AJAX成功函數中,以確保僅在結果可用后才將其觸發。

function callYammer(){ 
    clearInterval(cleanit);
    $.getJSON("./yammer.feed?request=messages",function(json) {
        var objYammer = $("#yammerFeed");
        objYammer.html('');
        $.each(json.messages, function(i, m) {
            if(!m.replied_to_id && m.body.plain){
                var data = "<li>" + m.body.plain;
                $.getJSON("./yammer.feed?request=users&userid="+m.sender_id,function(jsonUser) {
                    console.log('1:'+jsonUser.full_name);
                    data += " - "+jsonUser.full_name + "</li>";
                    objYammer.append(data);
                    console.log('2:'+data);
                });
            }
        });
    });

編輯:

剛剛添加了console.log()語句。 他們返回什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM