Javascript 使用jQuery进行嵌套JSON获取
我试图从Yammer创建一个RSS提要类型的消息显示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("./
<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(数据);
不起作用?