Как получить доступ к данным, содержащимся в сериализованном объекте в JavaScript - PullRequest
0 голосов
/ 24 января 2012

У меня есть объект, который содержит имя пользователя и количество заданий, которые затем вставляются в список. (из данных)

Предполагая, что приведенный ниже код является правильным способом решения этой проблемы, как мне получить доступ к этим элементам данных в 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;

1 Ответ

0 голосов
/ 24 января 2012

Вам нужно посмотреть на сериализованный результат, чтобы увидеть, как он выглядит.Поскольку вы сериализуете 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`
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...