我的网站项目中有一个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等,但没有得到这个。请告诉我计算列数的方法? 谢谢你的时间。
答案 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);
});
});