如何计算json文件中的列数?

时间:2017-05-27 18:56:20

标签: javascript jquery html json

我的网站项目中有一个json文件,如下所示:

 [
 {
"id": "1",
"name": "ramesh",
"phone": "12345",
"salary": "50000"
},

{
"id": "2",
"name": "suresh",
"phone": "123456",
"salary": "60000"
 },

 {
"id": "3",
"name": "mahesh",
"phone": "123457",
"salary": "70000"
}
]

这里是示例数据,它有4列,但我不知道我将获得的json数据将包含多少列。

我只想知道json文件中的列数。目前我正在创建这样的表:

 $(document).ready(function () {
        var jsonitems = [];
        $.getJSON("json.json", function (data) {
           var employee_data = '';
            $.each(data, function (key, value) {
                employee_data += '<tr>';
                employee_data += '<td>' + value.id + '</td>';
                employee_data += '<td>' + value.name + '</td>';
                employee_data += '<td>' + value.salary + '</td>';
                employee_data += '<td>' + value.phone + '</td>';
                employee_data += '</tr>';

            });
            $('#employee_table').append(employee_data);

        });
    }); 

我尝试过aAray(),data [0] .columns等,但没有得到这个。请告诉我计算列数的方法? 谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以使用Object.keys()来获取对象的键数。 你有一个带有对象数组的JSON,每个对象有4个属性。我知道您将对象报告到表中,因此您需要知道您将拥有多少列,但是对于对象,术语属性或键更合适

var a = [
 {
"id": "1",
"name": "ramesh",
"phone": "12345",
"salary": "50000"
},

{
"id": "2",
"name": "suresh",
"phone": "123456",
"salary": "60000"
 },

 {
"id": "3",
"name": "mahesh",
"phone": "123457",
"salary": "70000"
}
];

console.log(Object.keys(a[0]).length);

所以在你的情况下:

 $(document).ready(function () {
        var jsonitems = [];
        $.getJSON("json.json", function (data) {
           var employee_data = '';
            // number of keys of the current object
            console.log(Object.keys(data[0]));
            $.each(data, function (key, value) {
                employee_data += '<tr>';
                employee_data += '<td>' + value.id + '</td>';
                employee_data += '<td>' + value.name + '</td>';
                employee_data += '<td>' + value.salary + '</td>';
                employee_data += '<td>' + value.phone + '</td>';
                employee_data += '</tr>';

            });
            $('#employee_table').append(employee_data);

        });
    }); 

为了循环数据,你可以不使用jQuery而只是以这种方式使用普通JS:

$(document).ready(function () {
            var jsonitems = [];
            $.getJSON("json.json", function (data) {
               var employee_data = '';
                // number of keys of the current object
                console.log(Object.keys(data[0]));
                data.forEach((employee) => {
                    employee_data += '<tr>';
                    employee_data += '<td>' + employee.id + '</td>';
                    employee_data += '<td>' + employee.name + '</td>';
                    employee_data += '<td>' + employee.salary + '</td>';
                    employee_data += '<td>' + employee.phone + '</td>';
                    employee_data += '</tr>';

                });
                $('#employee_table').append(employee_data);

            });
        });