如何使用 Jquery 循环遍历此 JSON 数据以显示 klout 分数?

Posted

技术标签:

【中文标题】如何使用 Jquery 循环遍历此 JSON 数据以显示 klout 分数?【英文标题】:How to loop through this JSON Data using Jquery to display klout score? 【发布时间】:2011-09-25 01:46:09 【问题描述】:

API JSON 数据:

"status":200,"users":["twitter_screen_name":"mikerbrt","influencers":
["twitter_screen_name":"techcrunch","kscore":85.17,    
"twitter_screen_name":"tinucherian","kscore":61.5,
"twitter_screen_name":"scobleizer","kscore":84.08,
"twitter_screen_name":"startwerk","kscore":42.12,
"twitter_screen_name":"mikeschwede","kscore":61.89]]

脚本:

$( "#getTweets" ).bind( "click", function() 
    var twitterUsername = $( "#twitterUsername" ).val();   
     var url = "http://api.klout.com/1/soi/influenced_by.json?key=7zcwhzhdp4w45q9fdqw9gqsc" + "&users=" +  twitterUsername + "&callback=?";
    $.getJSON( url, function( data ) 
             for(var i=0; i < data.influencers.length; i++) 
  alert(data.influencers[i].kscore);
       
           );
);

html 数据:

<div id="input">
    <span>Enter Twitter Username</span>
    <input id="twitterUsername" type="text" />
    <button id="getTweets">Get Tweets</button>
</div>
<ul></ul>

要求的输出:需要显示影响者的影响力分数

【问题讨论】:

【参考方案1】:

好的,我不确定“Users”属性是否会被视为一个数组,或单个实例或用户,但它会是:

for(var i=0; i < data.users[0].influencers.length; i++) 
  alert(data.users[0].influencers[i].kscore);
 

for(var i=0; i < data.users.influencers.length; i++) 
  alert(data.users.influencers[i].kscore);
 

取决于如何感知“用户” HTH。 戴夫

【讨论】:

嗨,戴夫,以下解决方案有效:for(var i=0; i 【参考方案2】:

您没有在data.users.influencers 中选择users

$.getJSON( url, function( data ) 
  $.each(data.users,function(u,users)
     $.each(users.influencers,function(i,user)
      alert(user.kscore);
     );
  );     

【讨论】:

@Dave Long 你的解决方案让我意识到 users 是一个数组而不是一个对象 :) 我也对此感到困惑 - 并继续编辑我的答案:-) @Niklas,那不是 $.each(data.users,function(u,user) $.each(user.influensers,function(i,influenser) alert(influenser.kscore) ); ); ); @Niklalalas - 我也添加了一个版本【参考方案3】:

由于您只获得一个用户的数据,因此您可以这样做:

DEMO HERE

<div id="input">
    <span>Enter Twitter Username</span>
    <input id="twitterUsername" type="text" />
    <button id="getTweets">Get Tweets</button>
</div>
<ul id="klout"></ul>

$( "#getTweets" ).bind( "click", function() 
    var twitterUsername = $( "#twitterUsername" ).val();   
     var url = "http://api.klout.com/1/soi/influenced_by.json?key=7zcwhzhdp4w45q9fdqw9gqsc" + "&users=" +  twitterUsername + "&callback=?";
    $.getJSON( url, function( data ) 
        $.each(data.users[0].influencers,function(j, influenser)  // array
  $("#klout").append('<li>'+influenser.twitter_screen_name+':'+influenser.kscore+'</li>');
       );
    );
);

【讨论】:

以上是关于如何使用 Jquery 循环遍历此 JSON 数据以显示 klout 分数?的主要内容,如果未能解决你的问题,请参考以下文章

jquery循环输出json数据

jQuery循环遍历JSON数组

带有 JSON 数组的 jQuery 'each' 循环

jquery json遍历节点的问题

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组对象Dom元素二维数组双层循坏类json数据等等

JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论 收藏 举报 jsonc JSON数据如:{&quot;opti