2010-10-25 14 views
10

Ich habe die folgenden JSON wie unten zu sehen. Ich versuche die Werte TOP1, TOP2 zu lesen. Ich bin mir nicht ganz sicher, wie ich das machen soll.jquery lesen verschachtelte JSON

Ich benutze die folgenden .. Aber das bringt mir nur ein Objekt, das die verschachtelten Objekte für TOP1 und TOP2 hat. Wie bekomme ich die Werte TOP1 und TOP2?

$.getJSON('http://localhost/data/menufixed.json', 
    function(data) {    
     $.each(data, function(entryIndex, entry) { 
      var html = '<li class="top-level">'; 

     }); 
    }); 

und die Daten unter

{ 
"actions" : [ 
    { 
     "action": "TOP1", 
     "subaction": [ 
      { 
       "name": "A" 
      }, 
      { 
       "name": "B" 
      }, 
      { 
       "name": "C" 
      } 
     ] 
    }, 
    { 
     "action": "TOP2", 
     "subaction": [ 
      { 
       "name": "X" 
      }, 
      { 
       "name": "Y" 
      } 
     ] 

Antwort

11

Es sieht aus wie Sie, obwohl die .actions Schleife wollen, so ist dies ändern:

$.each(data, function(entryIndex, entry) { 
    var html = '<li class="top-level">'; 
}); 

Um dies:

$.each(data.actions, function(entryIndex, entry) { 
    var html = '<li class="top-level">' + this.action + '</li>'; 
}); 

Mit data.actions Sie durchlaufen jetzt dieses Array von Objekten und diese Objekte sind die mit der .action Eigenschaft, zum Beispiel: "TOP1" und "TOP2".

+0

Dies ist, was ich nach danke Nick! Wie kann ich auf die ABC/YX-Daten zugreifen? – wmitchell

+4

@imerez - * Innerhalb * der '$ .each()' Callback oben würden Sie '$ .each (this.subalction, function() {alert (this.name);});', das würde Ihnen geben A, B, C, etc. - testen Sie es hier: http://www.jsfiddle.net/nick_craver/mHvvA/2/ –

+0

Danke das ist was ich bin .. danke für die ausgezeichnete Ressource jsfiddle auch: P – wmitchell