2012-01-24 45 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:太好了,很高興幫助!我不得不承認,有人猜測它會以陣列的形式回來,但這似乎是合乎邏輯的。 –

相關問題