2010-10-25 9 views
10

J'ai le json suivant comme vu ci-dessous. J'essaie de lire les valeurs TOP1, TOP2. Je suis un peu incertain de la façon de faire cela.jquery lecture json imbriquée

J'utilise ce qui suit .. Mais cela me donne juste un objet qui a les objets imbriqués pour TOP1 et TOP2. Comment puis-je obtenir les valeurs TOP1 et TOP2 ??

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

     }); 
    }); 

Les données ci-dessous

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

Répondre

11

On dirait que vous voulez faire une boucle si le .actions, donc changer ceci:

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

à ceci:

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

En utilisant data.actions vous parcourez maintenant ce tableau d'objets, et ces objets sont ceux avec la propriété .action, par exemple: "TOP1" et "TOP2".

+0

C'est ce que je remercie après Nick! Comment accéder aux données ABC/YX? – wmitchell

+4

@imerez - * A l'intérieur du rappel '$ .each()' ci-dessus, vous feriez '$ .each (this.subaction, function() {alert (this.name);});', cela vous donnerait A, B, C, etc. - le tester ici: http://www.jsfiddle.net/nick_craver/mHvvA/2/ –

+0

Merci c'est ce que Im après .. merci pour l'excellente ressource jsfiddle aussi: P – wmitchell