Estoy teniendo problemas para cargar los datos de un archivo .json que tengo dentro del proyecto. Parece como que no me lo reconoce como array o algo pasa. Si le pongo datos.listaPersonas no entra al for porque length no esta definido, si solo le asigno datos mete en la tabla 18 "undefined" a pesar que el array es solo de 4 personas.
Código Javascript:
Ver original
function inicializar(datos){ var listaObj = datos.listaPersonas; var refTabla = document.getElementById("tablaDatos"); if (refTabla) { for (i = 0; i < listaObj.length; i++) { var nuevaFila = refTabla.insertRow(-1); var nuevaCelda; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].id; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].Apellido; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].Nombre; } } }
Archivo.json:
Código:
{ "listaPersonas":[ {"id":"123456","Apellido":"Gonzalez","Nombre":"Juan Ignacio"}, {"id":"12312","Apellido":"Ventura","Nombre":"Jose"}, {"id":"213213","Apellido":"Salas","Nombre":"Maria"}, {"id":"56777756","Apellido":"Jofrey","Nombre":"Luis"} ] }
EDIT:
Solucionado, el problema es que me faltaba el loadJSON y despues JSON.parse()
Asi queda:
Código Javascript:
Ver original
function inicializar(datos){ loadJSON(inicializar, datos); var a=JSON.parse(datos); var listaObj = a.listaPersonas; var refTabla = document.getElementById("tablaDatos"); if (refTabla) { for (i = 0; i < 4; i++) { var nuevaFila = refTabla.insertRow(-1); var nuevaCelda; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].id; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].Apellido; nuevaCelda = nuevaFila.insertCell(-1); nuevaCelda.innerHTML = listaObj[i].Nombre; } } }
Código Javascript:
Ver original
function loadJSON(callback, jsonFile) { var xobj = new XMLHttpRequest(); xobj.overrideMimeType("application/json"); xobj.open('GET', jsonFile, true); xobj.onreadystatechange = function () { if (xobj.readyState === 4 && xobj.status === 200) { callback(xobj.responseText); } }; xobj.send(null); }