2012-11-21 4 views
1

J'ai récupéré ces données JSON à partir de mon service Web. Comment puis-je faire une boucle sur chaque ligne et ajouter à <ul>?Jquery analyse les données JSON

J'ai le code ci-dessous, mais ça ne semble pas marcher. Merci.

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('a#pop-video-link').click(function(e){ 
       // window.alert("test"); 
       var htm = ""; 
       // htm = $('ul.ad-thumb-list').html(htm); 
       $("ul.ad-thumb-list li").remove(); 
       e.preventDefault(); 
       var src = $(this).attr('title'); 
       getResults(src); 

      function getResults(str) { 
       $.ajax({ 
         type: "POST", 
         async: false, 
         contentType: "application/x-www-form-urlencoded", 
         dataType: "json", 
         data: 'data=' + str, 
         url: '/base/MyApi/MyPostFunction', 
         success: function(data){ 
         var myData = JSON.parse(jsonString2); 
         var $grouplist = $('#groups'); 
         $.each(myData, function() { 
          $('<li><a href="'+ this.url +'"/><img src="'+ this.src + '" class="image0"/></li>').appendTo($grouplist); 
         }); 
         } 
       }); 
         } 
      }); 
      }); 
      </script> 

JSON données tentative d'analyse:

<value>[{"url":"/media/22.jpg","src":"/media/429.jpg"},{"url":"/media/44.jpg","src":"/media/55.jpg"},{"url":"/media/22.jpg","src":"/media/33.jpg"}]</value> 

Répondre

1

Vous avez single dimensional array of objects so data[0].id would have id de premier objet et vous devez également utiliser la longueur sur elle au lieu de compter.

for (var i = 0; i < data.length; i++) { 
     var n = data[i]; 
     $('ul.ad-thumb-list').append('<li><a href="'+n.url+'"/><img src="'n.src+'" class="image0"/></li>'); 
} 
0

Vous pouvez parcourir tous vos objets de données [0] avec $.each

$.each(data[0], function(key, val) { 
    $('<li><a href="'+ key +'"/><img src="'+ val +'" class="image0"/></li>') 
     .appendTo('ul.ad-thumb-list'); 
}); 

voir si cela résout votre problème.

+0

merci pour les réponses. J'ai trouvé que cela semble fonctionner: var myData = JSON.parse (jsonString); $ (document) .ready (function() {var $ grouplist = $ ('groupes n'); .each $ (myData, function() { $ (»

  • '+ this.url +'
  • ') .appendTo ($ grouplist); }); }); – PeteTheGreek