Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery进行嵌套JSON获取_Javascript_Jquery_Json - Fatal编程技术网

Javascript 使用jQuery进行嵌套JSON获取

Javascript 使用jQuery进行嵌套JSON获取,javascript,jquery,json,Javascript,Jquery,Json,我试图从Yammer创建一个RSS提要类型的消息显示 <script type="text/javascript"> var cleanit = null; $(document).ready(function(){ cleanit = setInterval('callYammer()', 50);}); function callYammer(){ clearInterval(cleanit); $.getJSON("./

我试图从Yammer创建一个RSS提要类型的消息显示

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

var cleanit=null;
$(document).ready(函数(){cleanit=setInterval('callYammer()',50);});
函数callYammer(){
clearInterval(cleanit);
$.getJSON(“./yammer.feed?请求=消息”,函数(json){
var objYammer=$(“#yammerFeed”);
objYammer.html(“”);
$.each(json.messages,function(i,m){
如果(!m.responsed_to_id&&m.body.plain){
var data=“
  • ”+m.body.plain; $.getJSON(“./yammer.feed?request=users&userid=“+m.sender\u id,函数(jsonUser){ //警报(jsonUser.full_name); 数据=数据+“-”+jsonUser.full_name; }); 数据=数据+“
  • ”; objYammer.append(数据); } }); }); 返回false; }
    我想显示消息及其用户名。 但最后,从firebug调试器中,我看到的是内部JSON数据没有像我预期的那样被追加。 尽管通话正在进行,数据来自通话,但

    data=“-”+jsonUser.full_name

    在用户的所有JSON调用之后执行

    如何将内部JSON调用中的用户名附加到主JSON数据中?

    您调用这些行

    data = data + "</li>";
    objYammer.append(data);
    
    data=data+””;
    objYammer.append(数据);
    
    在内部getJSON AJAX调用之后的代码中,但这可能会导致在AJAX请求完成之前执行这些行。将代码放入内部ajaxsuccess函数中,以确保只有在结果可用后才触发它

    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);
                    });
                }
            });
        });
    
    函数callYammer(){
    clearInterval(cleanit);
    $.getJSON(“./yammer.feed?请求=消息”,函数(json){
    var objYammer=$(“#yammerFeed”);
    objYammer.html(“”);
    $.each(json.messages,function(i,m){
    如果(!m.responsed_to_id&&m.body.plain){
    var data=“
  • ”+m.body.plain; $.getJSON(“./yammer.feed?request=users&userid=“+m.sender\u id,函数(jsonUser){ console.log('1:'+jsonUser.full_name); 数据+=“-”+jsonUser.full_name+”
  • ”; objYammer.append(数据); console.log('2:'+数据); }); } }); });
    编辑:

    刚刚添加了
    console.log()
    语句。它们返回什么?

    您调用这些行

    data = data + "</li>";
    objYammer.append(data);
    
    data=data+””;
    objYammer.append(数据);
    
    在内部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);
                    });
                }
            });
        });
    
    函数callYammer(){
    clearInterval(cleanit);
    $.getJSON(“./yammer.feed?请求=消息”,函数(json){
    var objYammer=$(“#yammerFeed”);
    objYammer.html(“”);
    $.each(json.messages,function(i,m){
    如果(!m.responsed_to_id&&m.body.plain){
    var data=“
  • ”+m.body.plain; $.getJSON(“./yammer.feed?request=users&userid=“+m.sender\u id,函数(jsonUser){ console.log('1:'+jsonUser.full_name); 数据+=“-”+jsonUser.full_name+”
  • ”; objYammer.append(数据); console.log('2:'+数据); }); } }); });
    编辑:


    刚刚添加了
    console.log()
    语句。它们返回什么?

    你的意思是:
    jsonUser.full\u name
    已定义,但
    data+=“-”+jsonUser.full\u name+”“objYammer.append(data);
    不起作用?你的意思是:
    jsonUser.full\u name
    已定义,但
    data+=“-”+jsonUser.full\u name+”;objYammer.append(数据);
    不起作用?