2010-03-17 10 views
0

J'utilise asp.net mvc2 et j'essaie d'envoyer une liste d'objets json avec des valeurs codées en dur à partir du contrôleur domestique, et de les recevoir dans l'index .... dans le code ci-dessous j'envoie 1 objet json. ... comment j'en envoie beaucoup?Comment faire une liste d'objets json?

dans le contrôleur de la maison:

public ActionResult JsonValue() 
     { 
      var result = new 
      { 
       pID = 1, 
       pName = "Lina", 
       pStart = "", 
       pEnd = "", 
       pColor = "ff0000", 
       pLink = "", 
       pMile = 0, 
       pRes = "Brian", 
       pComp = 0, 
       pGroup = 1, 
       pParent = 0, 
       pOpen = 1 
      }; 


      return Json(result,JsonRequestBehavior.AllowGet); 
     } 

et recevoir dans l'index comme ceci:

 var Jid = null; 
     var Jname = null; 
     var Jstart = null; 
     var Jend = null; 
     var Jcolor = null; 
     var Jlink = null; 
     var Jmile = null; 
     var Jres = null; 
     var Jcomp = null; 
     var Jgroup = null; 
     var Jparent = null; 
     var Jopen = null; 
     var Jtitle = null; 
     var g = new JSGantt.GanttChart('g', document.getElementById('GanttChartDIV'), 'day'); 
     $(document).ready(function() { 

      $.getJSON('../../Home/JsonValue', function (data) { 
       Jid = data.pID; 
       Jname = data.pName; 
       Jstart = data.pStart; 
       Jend = data.pEnd; 
       Jcolor = data.pColor; 
       Jlink = data.pLink; 
       Jmile = data.pMile; 
       Jres = data.pRes; 
       Jcomp = data.pComp; 
       Jgroup = data.pGroup; 
       Jparent = data.pParent; 
       Jopen = data.pOpen; 
       Jtitle = '|id= ' + Jid + '|Name: ' + Jname + '|Start: ' + Jstart + '|End: ' + Jend; 

      }); // end $.getJSON 

grâce d'un million à l'avance ... Lina

Répondre

1

les ajouter à un tableau et retourner cela (via l'appel JSON bien sûr).

personnellement je ferais une classe plutôt que l'objet anonyme que vous avez et ensuite ajouter à une liste générique, une fois que vous avez la liste remplie, vous pouvez passer la liste.ToArray() dans l'appel JSON. Je n'ai pas essayé, mais vous pourriez être en mesure de passer la liste directement à la JSON (je ne sais pas si cela va créer un tableau Json à partir d'une liste générique).

modifier,

Il ressemble Json tournera toute dénombrable dans un tableau JSON donc je dirais que vous pouvez passer la liste liste générique, je vais ajouter un code plus tard

Code

ajouté ci-dessous.

Je ne pense pas que vous devriez coder un List<object> personnellement, comme je l'ai expliqué je créerais une classe pour votre objet anonyme afin que vous puissiez le taper fortement. J'espère que cela vous donnera l'idée si

public ActionResult JsonValue() 
     { 
      List<object> jsonlist = new List<object>(); 
      jsonlist.Add(new 
      { 
       pID = 1, 
       pName = "Lina", 
       pStart = "", 
       pEnd = "", 
       pColor = "ff0000", 
       pLink = "", 
       pMile = 0, 
       pRes = "Brian", 
       pComp = 0, 
       pGroup = 1, 
       pParent = 0, 
       pOpen = 1 
      }); 

      jsonlist.Add(new 
      { 
       pID = 1, 
       pName = "Lina", 
       pStart = "", 
       pEnd = "", 
       pColor = "ff0000", 
       pLink = "", 
       pMile = 0, 
       pRes = "Brian", 
       pComp = 0, 
       pGroup = 1, 
       pParent = 0, 
       pOpen = 1 
      }); 

      return Json(jsonlist,JsonRequestBehavior.AllowGet); 
     } 
Questions connexes