Je voudrais obtenir les noms des propriétés d'un objet JSON pour construire un tableau dynamiquement
exemple:
var obj = { 'fname': 'joe', 'lname': 'smith', 'number': '34' };
for (var i = 0; i < obj.properties.length; i++) {
alert(' name=' + obj.properties[i].name
+ ' value=' + obj.properties[i].value);
}
serait alerte
nom=pnom valeur=joe
nom=lname=smith
nom=valeur de nombre=34
ensuite, j'ai pu construire un tableau à l'aide de json comme ceci
var obj = { 'players': [
{ 'fname': 'joe', 'lname': 'smith', 'number': '34'} ,
{ 'fname': 'jim', 'lname': 'Hoff', 'number': '12'} ,
{ 'fname': 'jack', 'lname': 'jones', 'number': '84'}
] };
pour produire...
fname lname nombre
joe smith 34
jim Hoff 12
jack jones 84
Mise à JOUR
merci pour la réponse, j'ai produit une table à partir de la forme d'objets json en utilisant les noms de propriété de l'objet premier de la liste pour les en-têtes
function renderData() {
var obj = { 'players': [
{ 'fname': 'joe', 'lname': 'smith', 'number': '34' },
{ 'fname': 'jim', 'lname': 'jones', 'number': '12' },
{ 'fname': 'jack', 'lname': 'Hoff', 'number': '84' }
] };
var cols = GetHeaders(obj);
$('#Output').html(CreateTable(obj, cols));
}
function CreateTable(obj, cols) {
var table = $('<table></table>');
var th = $('<tr></tr>');
for (var i = 0; i < cols.length; i++) {
th.append('<th>' + cols[i] + '</th>');
}
table.append(th);
for (var j = 0; j < obj.players.length; j++) {
var player = obj.players[j];
var tr = $('<tr></tr>');
for (var k = 0; k < cols.length; k++) {
var columnName = cols[k];
tr.append('<td>' + player[columnName] + '</td>');
}
table.append(tr);
}
return table;
}
function GetHeaders(obj) {
var cols = new Array();
var p = obj.players[0];
for (var key in p) {
//alert(' name=' + key + ' value=' + p[key]);
cols.push(key);
}
return cols;
}