2016-02-08 34 views
1

我有一个AJAX返回这样的JSON数组数据,如何使用javascript显示JSON数组数据?

[{ 
    "UserName": "John", 
    "Total": "45", 
    "Correct(%)": "71.1111", 
    "Incorrect(%)": "28.8889" 
}, { 
    "UserName": "KKK", 
    "Total": "42", 
    "Correct(%)": "47.6190", 
    "Incorrect(%)": "52.3810" 
}, { 
    "UserName": "AAA", 
    "Total": "54", 
    "Correct(%)": "81.4815", 
    "Incorrect(%)": "18.5185" 
}, { 
    "UserName": "BBB", 
    "Total": "39", 
    "Correct(%)": "58.9744", 
    "Incorrect(%)": "41.0256" 
}] 

我想通过使用JavaScript这样的证明数据,

用户名:约翰总计:45正确(%):71.1111
不正确(%):28.8889

用户名:KKK总数:42正确(%):47.6190
不正确(%):52.3810

用户名:AAA总数:54正确(%):81.4815
不正确(%):18.5185

用户名:BBB总数:39正确(%):58.9744
不正确(%):41.0256

所以,我尝试这样,

$.ajax({ 
       url: 'some.php', 
       type: 'post', 
       data: {dept:d}, 
       dataType: 'json', 
       success: function(data) { 
        console.log("success"); 
        var temp = ""; 
        if(data && data!="") { 
         for(var i=0; i<data.length; i++) { 
          $.each(data,function(k,v){ 
           $.each(v,function(k,s){ 
            temp +=k+': <b>'+s+'</b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp'; 
           }); 
           temp +="<br/><br/>"; 
           console.log(temp); 
          }); 
         } 

         document.getElementById('user').innerHTML= temp; 
        } 
}); 

但是,我为每个用户五成一线。循环时我错了。那么,我该怎么做?

+3

尝试删除'为loop' – roullie

+0

谢谢你这么多。现在可以了。 – Cloud

+2

@roullie将其作为答案 – Afsar

回答

1

尝试删除for循环。

//for(var i=0; i<data.length; i++) { 
    $.each(data,function(k,v){ 
     $.each(v,function(k,s){ 
      temp +=k+': <b>'+s+'</b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp'; 
     }); 
     temp +="<br/><br/>"; 
     console.log(temp); 
    }); 
//} 
+1

非常感谢。 :) – Cloud

+0

@NightMare没问题。很高兴我能帮上忙。 :) – roullie

0

你只需要使用1 $ .each循环,否则你会遍历所有的数据多次。

1

使用此代码:

$.ajax({ 
    url: 'some.php', 
    type: 'post', 
    data: {dept:d}, 
    dataType: 'json', 
    success: function(data) { 
     console.log("success"); 
     var temp = ''; 
     if(data && data != "") { 
      var temp = '<ul>'; 
      for(var i = 0; i < data.length; i++) { 
       temp += '<li>UserName: ' + data[i]['UserName'] + '&nbsp;Total: ' + data[i]['Total'] + '&nbsp;Correct(%): ' + data[i]['Correct(%)'] + '&nbsp;Incorrect(%): ' + data[i]['Incorrect(%)'] + '</li>'; 
      } 
      temp += '</ul>'; 

      document.getElementById('user').innerHTML = temp; 
     } 
    } 
}); 
+0

谢谢。它的方式不同。 – Cloud