Una semplice guida per andare a leggere i dati di un Json con javascript e popolare una tabella html.

Con Javascript possiamo fare molte cose, è un linguaggio molto potente. Possiamo andare a creare contenuti dinamici andando a leggere API e integrare i dati letti su pagine html. Oggi vi spiego come andare a caricare i dati di una tabella html con i contenuti di un json. Premesso i contenuti del JSon possono essere caricati anche tramite un API, ora per semplicità li leggiamo da una variabile.

Questa è la tabella di esempio, dove andremo a caricare i valori delle grammature standard delle macro categorie alimentari:

        <table id="alimenti">
          <thead>
            <tr>
              <th class="thtitle">Alimento</th>
              <th class="thtitle">Porzione in grammi *</th>
            </tr>
          </thead>
          <tbody id="alimenti-body">
          </tbody>
        </table>

Qui il JSon con i dati:

var alimenti = [
  {
    "Alimento": "Latte/yogurt",
    "Porzione": "125"
  },
  {
    "Alimento": "Formaggio fresco",
    "Porzione": "100"
  },
  {
    "Alimento": "Formaggio stagionato",
    "Porzione": "50"
  },
  {
    "Alimento": "Carne",
    "Porzione": "100"
  },
  {
    "Alimento": "Pesce",
    "Porzione": "150"
  },
  {
    "Alimento": "Uova",
    "Porzione": "50 (1 uovo)"
  },
  {
    "Alimento": "Legumi freschi",
    "Porzione": "100 (a crudo)"
  },
  {
    "Alimento": "Pane",
    "Porzione": "50"
  },
  {
    "Alimento": "Pasta/Riso",
    "Porzione": "80 (a crudo)"
  },
  {
    "Alimento": "Pasta fresca all'uovo",
    "Porzione": "120 (a crudo)"
  },
  {
    "Alimento": "Patate",
    "Porzione": "200 (a crudo)"
  },
  {
    "Alimento": "Insalata",
    "Porzione": "50"
  },
  {
    "Alimento": "Ortaggi",
    "Porzione": "250 (a crudo)"
  },
  {
    "Alimento": "Frutta",
    "Porzione": "150"
  }
];

A questo punto possiamo scrivere la nostra funzione che si occuperà di andare a leggere i dati e caricarli sulla tabella html:

var scriptAlimenti = document.createElement('script');

Creo l’elemento ScriptAlimenti.

scriptAlimenti.onload = function() {
  var table = document.getElementById("alimenti");
  var tbody = document.getElementById("alimenti-body"); // dichiaro dove andrò a caricare i dati  
  for (var i = 0; i < alimenti.length; i++) {
    var row = document.createElement("tr");  
    row.insertAdjacentHTML('beforeend', `<td>${alimenti[i].Alimento}</td><td>${alimenti[i].Porzione}</td>`);    
    tbody.appendChild(row);
  }
};

Creo la funzione scriptAlimenti che andrà a leggere la variabile alimenti popolando le righe con i danti dentro row.innerHTML.

A questo punto chiudo il mio script con l’elemento

document.head.appendChild(scriptAlimenti);

Ovvero andiamo a rendere visibile a a incorporare i valori di script alimenti dentro la tabella.

Tags: