JavaScript
Tema 5 · JSON – Intercanvi de dades tècniques
Introducció
JSON (JavaScript Object Notation) és un format lleuger per intercanviar dades, àmpliament usat en aplicacions web i IoT. En enginyeria, JSON serveix per emmagatzemar configuracions de màquines, lectures de sensors, catàlegs de components i dades de projectes.
Objectius
- Convertir objectes JavaScript a JSON amb
JSON.stringify() - Parsejar cadenes JSON a objectes amb
JSON.parse() - Carregar fitxers JSON locals amb
fetch()i mostrar-ne el contingut al DOM - Emmagatzemar dades de sensors o components en format JSON
De JavaScript a JSON i viceversa
Convertir una especificació tècnica d'un motor a JSON i després recuperar-la:
const motor = {
model: "MTR-400",
potencia_W: 1500,
tensio_V: 230,
rpm: 1450,
actiu: true
};
// Convertir a JSON (cadena de text)
const jsonMotor = JSON.stringify(motor, null, 2);
console.log(jsonMotor);
// Parsejar de nou a objecte
const objMotor = JSON.parse(jsonMotor);
console.log(`Potència: ${objMotor.potencia_W} W`);
Carregar dades des d'un fitxer JSON
Simular la càrrega d'un catàleg de components electrònics:
// Suposem un fitxer 'components.json' amb aquest contingut:
// [ {"nom":"R1","tipus":"resistencia","valor":220}, ... ]
fetch("components.json")
.then(response => response.json())
.then(data => {
const llista = document.getElementById("llista-components");
data.forEach(comp => {
const li = document.createElement("li");
li.textContent = `${comp.nom}: ${comp.tipus} de ${comp.valor} Ω`;
llista.appendChild(li);
});
})
.catch(error => console.error("Error carregant JSON:", error));
El fitxer JSON ha d'estar al mateix servidor
Exemple complet: visualitzar dades de sensors
const dadesSensorJSON = `[
{ "hora": "10:00", "temperatura": 22.5, "pressio": 1012 },
{ "hora": "11:00", "temperatura": 23.1, "pressio": 1010 },
{ "hora": "12:00", "temperatura": 24.8, "pressio": 1008 }
]`;
const lectures = JSON.parse(dadesSensorJSON);
const taula = document.getElementById("taula-lectures");
taula.innerHTML = "<tr><th>Hora</th><th>Temp (°C)</th><th>Pressió (hPa)</th></tr>";
lectures.forEach(lec => {
const fila = document.createElement("tr");
fila.innerHTML = `<td>${lec.hora}</td><td>${lec.temperatura}</td><td>${lec.pressio}</td>`;
taula.appendChild(fila);
});
Exercicis
- Crea un objecte JavaScript amb les característiques d'un microcontrolador (model, pins, freqüència) i converteix-lo a JSON.
- Escriu un petit fitxer JSON amb 3 components d'un circuit (resistència, LED, condensador) i carrega'l amb
fetchper mostrar-lo en una llista HTML. - Dissenya un formulari que generi dinàmicament un objecte JSON amb les dades introduïdes i el mostri en un
<pre>.
Mini Projecte – Gestor de components electrònics
Crea una aplicació web que gestioni un petit inventari de components:
- Defineix un array d'objectes en un fitxer
inventari.json(mínim 6 components amb camps:id,nom,tipus,valor,unitats). - Carrega el fitxer JSON amb
fetch()i mostra la llista en una taula HTML. - Afegeix un camp de cerca per filtrar components per tipus (sense recarregar la pàgina).
- Permet exportar la llista actual (filtrada o completa) a una cadena JSON i mostrar-la en un quadre de text per copiar-la.
Tot el processament s'ha de fer al navegador, utilitzant el DOM i JSON.