Comment puis-je boucler les données JSON renvoyées par jquery?

Dupliquer possible:
Comment puis-je renvoyer JSON et parcourir le json renvoyé dans jQuery dans l’application MVC?

Ce sont mes données retournées par le contrôleur MVC et je reçois cela dans mon rappel de succès:

[{ "_id" : { "$oid" : "4dc8" }, "eid" : { "$oid" : "4da" }, "user" : "bob", "text" : "First comment!!", "dt" : { "$date" : 1304966277978 } }, { "_id" : { "$oid" : "4dc8" }, "eid" : { "$oid" : "4da" }, "user" : "bob", "text" : "Second comment!!", "dt" : { "$date" : 1304966347677 } }, { "_id" : { "$oid" : "4dc8" }, "eid" : { "$oid" : "4da" }, "user" : "bob", "text" : "Third comment!!", "dt" : { "$date" : 1304966493240 } } ] 

Manette:

 [HttpGet] public JsonResult GetComments(params...) { return Json(new { comments = GetFromDB().ToJson() }, JsonRequestBehavior.AllowGet); } 

Problème: j’ai essayé plusieurs manières de boucler les lignes. Mais tout semble boucle infinie.

 $.ajax( { type: "GET", url: "/comment/GetComments", dataType: "json", data: "app=" + app + "&eid=" + eid + "&pg=" + pg + "&pgs=" + pgs, success: function (result) { $.each(result[comments], function () { $.each(this, function (k, v) { alert('this a column or atsortingbute'); }); alert('end of row'); }); }, error: function (req, status, error) { alert('Error=' + error + ' & Status=' + status); } }); 

Aussi essayé:

 $.each(result["comments"], function (key, value) { alert('comment found'); }); 

Comment puis-je boucler les lignes et accéder à la valeur de chaque atsortingbut?

Vous pouvez simplement utiliser une simple boucle for :

 for (var i = 0, len = results.length; i < len; i++) { // do something with results[i].text } 

Voir exemple →


EDIT: Si vous devez d’abord convertir une chaîne JSON en un object Javascript, alors avant la boucle, vous devez:

 results = JSON.parse(results); 
 $.getJSON("YourControllerHere.XXX",{}, function(data){ $.each(data, function(key, val) { $('#someLocation').append('
  • ' + val.text + '
  • '); //This is just an example. You can do something with each row/ value pair here. }); });

    Vous devriez être capable de parcourir les lignes et les valeurs avec ceci.

    Meilleur,

    T

    Ceci est un duplicata d’un autre message aujourd’hui – que vous avez posté? 🙂

    Comment puis-je renvoyer JSON et parcourir le json renvoyé dans jQuery dans l’application MVC?

    Votre premier problème est qu’il n’ya pas de champ de result["comments"] dans votre JSON. Vous obtenez un tableau en arrière, de ce que je suppose être les commentaires eux-mêmes. Donc, vous devez itérer sur cela. Quelque chose comme

     $.each(result, function(k, v) { console.log(v.user); }); 

    devrait fonctionner, je viens de l’essayer dans le navigateur. Le code suivant parcourt les lignes, puis les atsortingbuts de chaque ligne:

     $.each(foo, function(k, row) { $.each(row, function(attr, value) { console.log(attr, value); }) }); 
     for(var key in json) for(var key in (obj = json[key])) { //obj holds the current object in the json array console.log(obj[key]); }