Hola,
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 originalfunction 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 originalfunction 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 originalfunction 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);
}