2010-01-11 17 views
5

tengo la siguiente respuesta JSON, pero no estoy seguro de cómo hacer un bucle y utilizarla correctamente.bucle a través del resultado JSON con jQuery

{ 
    "ID": 1, 
    "Name": "dept1", 
    "Categories": [ 
    { 
     "ID": 1, 
     "Name": "catg1" 
    }, 
    { 
     "ID": 2, 
     "Name": "catg2" 
    } 
    ] 
} 

siguiente código me alerta el DepartmentID que es 1, entonces su nombre 'dept1', entonces esto: '[object Object],[object Object]'

$.getJSON("mainPage2.aspx", function(result) { 
    $.each(result, function(i, item) { 
     alert(this); 
    }); 
}); 

todo lo que quiero hacer es crear un div usando información del departamento, y cree otro div dentro de él que incluya la información de las categorías que pertenecen a ese departamento.

Respuesta

4
for(var key in result) { 
    var value = result[key]; 
    if(typeof value == 'object') { 
     if(value instanceof Array) { 
      // an array. loop through children 
      for(var i = 0; i < value.length; i++) { 
       var item = value[i]; 
      } 
     } else { 
      // complex object, not array. inner for loop on keys? 
     } 
    } else { 
     // regular string/number etc. just print out value? 
    } 
} 
6

Bueno, es mostrando su conseguir el bien objeto, has necesitado

$.getJSON("mainPage2.aspx", function(result) { 
    $.each(result, function(i, item) { 
     alert(item.Name); 
    }); 
}); 

Artículo ser el objeto pasado a través de la cada función debe recoger esto y alertar a cabo 'dept1' o lo que el texto es establecer

si desea colocar a través de las categorías y luego hacer otro bucle es decir

$.getJSON("mainPage2.aspx", function(result) { 
    $.each(result, function(i, item) { 
     alert(item.Name); 
     $.each(item.Categories, function(i, cat) { 
      alert(cat.Name) 
     } 
    }); 
}); 
+0

su solución tiene sentido, pero regresa "indefinida". – Batu