2010-01-11 35 views
5

Ich habe die folgende JSON-Antwort, aber ich bin mir nicht sicher, wie man es richtig durchschleifen und verwenden kann.Schleife durch JSON-Ergebnis mit jQuery

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

folgenden Code alarmiert mir die departmentID die 1, dann der Name 'dept1', dann das: '[object Object],[object Object]'

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

alles, was ich tun möchte, ein div mit Abteilung Informationen zu schaffen, und Erstelle ein weiteres div in ihm, das die Informationen der Kategorien enthält, die zu diesem Departement gehören.

Antwort

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

Nun, es zeigt seine das Objekt in Ordnung bekommen, haben Sie

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

Artikel versucht, das durch von der jeweiligen Funktion übergebene Objekt sein sollte es diese abholen und alarmiert out ‚dept1‘ oder was auch immer der Text set

wenn Sie wollen den Kategorien durchgeschleift werden dann also eine weitere Schleife tun

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

Ihre Lösung macht Sinn, kehrt aber "undefiniert" zurück. – Batu