2012-01-24 29 views
0

我有一个对象,它包含用户名和作业计数,然后将其插入到列表中。 (从数据表)如何访问javascript中的序列化对象中包含的数据

假设下面的代码是正确的方式去做这件事,我如何访问JavaScript中的这些数据元素?

类:

public class thePeople 
{ 
    public string Name { get; set; } 
    public string Calls { get; set; } 


    public thePeople(string n, string c) 
    { 
     Name = n; 
     Calls = c; 

    } 
} 

然后使用类的代码:

 var thosePeople = new List<thePeople>(); 

     StringBuilder Qry = new StringBuilder(); 

     Qry.Append("SELECT Count(Job_Id) as TotalJobs, User_Name,User_Id, jobstatus "); 
     Qry.Append("FROM Jobs, Users "); 
     Qry.Append("WHERE Jobs.jobstatus like 'o' AND Users.deleted = '0' AND Jobs.Next_User_Id = Users.User_Id "); 
     Qry.Append("GROUP BY User_Name"); 

     DataTable dt = new DataTable(); 
     dt = OMALibrary.OMADAL.Execute.PerCustomer.Query(Qry.ToString(), OMALibrary.OMADAL.Enumerators.TypeOfServers.Helpdesk, theCustomer); 

     for (int x = 0; x <= dt.Rows.Count - 1; x++) 
     { 
      thosePeople.Add(new thePeople(dt.Rows[x]["User_Name"].ToString(), dt.Rows[x]["Total_Jobs"].ToString())); 
     } 

     return JsonConvert.SerializeObject(thosePeople); 

当我这样做过一个 “单行” 对象,我只是用:

var users = jQuery.parseJSON(response.d) 

然后只需键入:

users.Name; users.Calls; 

回答

0

您需要查看序列化结果以查看它的外观。既然你序列化List,但它可能通过一个数组:

[ 
    { 
     "Name": "Joe", 
     "Calls": 1 
    }, 
    { 
     "Name": "Nitin", 
     "Calls": 3 
    } 
] 

...等你访问元素

var users = jQuery.parseJSON(response.d); 
console.log(users.length); // The number of entries 
console.log(users[0].Name); // The first user's name 
console.log(users[1].Name); // The first user's name 

或者遍历:

jQuery.each(users, function(index, user) { 
    // Here, `user` is an entry from the array, so `user.Name` and `user.Calls` 
}); 
+1

这是完美的谢谢你,作品gr8!我用你提到的jquery的foreach。 jQuery.each(用户,函数(索引,用户)alert(users [index] .Name +“ - ”+ users [index] .Calls); }); –

+0

@MarthinusElliott:太好了,很高兴帮助!我不得不承认,有人猜测它会以阵列的形式回来,但这似乎是合乎逻辑的。 –

相关问题