Buenas tardes.
Recién llevo tres semanas aprendiendo a programar en las cuales las dos primeras he hecho HTML y CSS, lo cual me ha parecido relativamente fácil, hasta que he llegado a Javascript y me encuentro con el primer problema y donde empiezan los lloros.
Tengo que extraer los datos de un JSON (donde hay varios objetos con diferentes atributos) y mostrarlos en una tabla en mi web. Pero no todos los atributos, si no unos en concreto. El JSON tiene esta estructura (he eliminado atributos ya que cada objeto tiene mas de veinte):
"num_results": 450,
"offset": 0,
"members": [
{
"id": "A000370",
"title": "Representative",
"short_title": "Rep.",
"first_name": "Alma",
"middle_name": null,
"last_name": "Adams",
"suffix": null,
"date_of_birth": "1946-05-27",
"gender": "F",
"party": "D",
"leadership_role": null,
"facebook_account": "CongresswomanAdams",
"youtube_account": null,
"govtrack_id": "412607",
"cspan_id": "76386",
"votesmart_id": "5935",
}
Lo primero que he hecho es crear el thead con los titulos o atributos a mostrar en el html, y un tbody con una id (houseData) vacía debido a que quiero crear los tds en su interior con los datos obtenidos del JSON:
<thead>
<tr class="table-light">
<th scope="col">Congressmen</th>
<th scope="col">Party Affiliation</th>
<th scope="col">State</th>
<th scope="col">Years in Office</th>
<th scope="col">% Votes w/Party</th>
</tr>
</thead>
<tbody id="houseData">
</tbody>
//con <table> en su inicio y </table> en su final, obviamente
Y aquí llega el problema debido a que con lo que hago, no tengo narices a sacar los datos específicos (nombre, estado, años en activo, etc) y mostrarlos en la tabla. No logro sacar la fórmula correcta y hasta ahora solo he conseguido esto sin éxito:
$.getJSON('/JSON/house_data.json',function(members){
for(var i = 0; i < members.houseData.length; i++){
$("#houseData").append(`
<tr>
<td>`+members.houseData[i].first_name`</td> //first_name es uno de los atributos a mostrar, igual que el resto.
<td>`+members.houseData[i].party`</td>
<td>`+members.houseData[i].state`</td>
<td>`+members.houseData[i].in_office`</td>
<td>`+members.houseData[i].votes_with_party_pct`</td>
</tr>
`);
};
}
Donde fallo?
Decir que los datos del JSON me los carga bien en la web usando el código por lo que están conectados correctamente:
document.getElementById("houseData").innerHTML = JSON.stringify(data,null,2);