El objetivo de este ejercicio es aplicar AJAX para leer el contenido de un fichero en formato json ( fichero.json ). La idea es utilizar JS, específicamente la tecnología AJAX para leer el fichero.json.
Instrucciones:
- Crea un directorio para el proyecto en cualquier parte de tu computador.
- En el directorio, crea el fichero.json (puedes cortar y pegar el código mostrado)
- En el directorio, crea el fichero ejercicio.html (corta y pega el contenido de ejercicio.html mostrado a continuación)
- Despliega ejercicio.html en un navegador y visualiza el comportamiento.
- Analiza principalmente cómo se han aplicado los 4 pasos indicados en la sección anterior.
fichero.json
{
"list":[
{"item":"Gestión de auditoría"},
{"item":"Gestión de menús"},
{"item":"Gestión de pedidos"},
{"item":"Gestión de contratos"},
{"item":"Gestion de logistica"},
{"item":"Administración"},
{"item":"Gestión de recursos humanos"},
{"item":"Gestión de compras"},
{"item":"Gestión mayorista"},
{"item":"Gestion de seguridad"},
{"item":"Administración de cuentas"},
{"item":"Gestión financiera"},
{"item":"Otra gestión"}
]
}
ejercicio.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Obtención de JSON con AJAX</title>
</head>
<body>
<h1>Contenido JSON obtenido</h1>
<div id="datos"></div>
<button onclick="obtenerDatos();">Obtener Datos</button>
<script>
function obtenerDatos() {
//PASO 1: Crear el objeto XMLHttpRequest
var htr = new XMLHttpRequest();
//PASO 2: Asignar la función que responde al evento
htr.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
console.log(this.response);
var elementoUL = document.createElement("ul");
this.response.list.forEach(element => {
var elementoLI = document.createElement("li");
var texto = document.createTextNode(element.item) ;
elementoLI.appendChild(texto);
elementoUL.appendChild(elementoLI);
});
document.getElementById("datos").appendChild(elementoUL);
}
}
//PASO 3: Configurar la solicitud
htr.open("GET", "ficheroJSON.json", true);
htr.responseType = "json";
//PASO 4: Enviar la solicitud
htr.send();
}
</script>
</body>
</html>