JSON结构的输出值

时间:2012-10-17 21:37:07

标签: javascript jquery ajax json

函数从服务器获取的数据:

{
   "COLUMNS":[
      "ID",
      "NAME",
      "LASTNAME"
   ],
   "DATA":[
      [
         "1",
         "John",
         "Lewis"
      ],
      [
         "2",
         "Peter",
         "Gabriel"
      ],
      [
         "3",
         "Susan",
         "Smith"
      ]
   ]
}

的JavaScript

<script type="text/javascript"> 
    $(document).ready(function(){
            $('#showteams').click(function() {
                $.ajax({
        url: "authenticationService.cfc?method=getAllTeams&returnformat=JSON&queryformat=column",
        dataType: 'json',

        success:function(data) {

            alert('data that function gets from the server:' + '\n' + '\n' + data + '\n' + '\n' + 
            "everything is listed here");

                    $.each(data.DATA, function(i,team){

                        $('#teamList').append('<li><a href="#">' + team + '</a>');
                    });

                }});
            });
            $('#teams').show();
            $('#teamList').fadeIn(1200);
            $(this).attr('disabled', 'disabled');
        });
</script>

虽然我的代码实际上有效,但至少在某种程度上它会输出像这样的值

1,John,Lewis
2,Peter,Gabriel
3,Susan,Smith

现在我想让它更灵活,以其他方式迭代数据并显示它例如

这是用户名: NAME 姓氏: LASTNAME ,数字 ID

这是用户名:约翰姓氏:刘易斯,数字 1

我知道可以通过 for 以某种方式完成,但无法解决它,我已经尝试了一切我能想到的:( 我真的很感谢你对这个问题的帮助,特别是考虑到javascript并不是我的事。

修改: 现在我在服务器端有一个问题:( 我想要实现的是输出数据说 首次点击记录从1到10 在11-20的第二次点击记录 。等等 在客户端jquery代码将传递数据,如startrow数据:{startrow:“1”,maxrow:“10”}, 在coldfusion组件cfloop应该做的伎俩,但由于某种原因,我无法返回正确的JSON格式。我已经尝试cfloop over query将数据放入数组以及struct和serializeJSON数组,但未能对其进行排序。 /强>

2 个答案:

答案 0 :(得分:0)

team是一个数组,使用数组表示法和索引访问它的值。 team[0] team[1] team[2]代表id,firstname,lastname

答案 1 :(得分:0)

上下文中的团队有一个数组,其中inturn是一个数组..所以你需要有两个循环..一个用于每个项目数组,另一个循环用于数组中的项目.. 试试这个

$.each(data.DATA, function(i,team){ 
     $.each( team , function(key , value){
         alert(value)
     });         
 });

FIDDLE