Генерация JSON-результата на основе двух взаимосвязанных объектов - PullRequest
0 голосов
/ 07 июля 2011

У меня есть два связанных друг с другом объекта

Race and Cars (на гонке содержится много автомобилей)

Мне нужно сгенерировать результат json, чтобы передать его в jQGrid, я подумал, что это можно сделать без создания нового класса, который будет содержать свойства Я думал, что могу пойти так:

var jsonData = new
        {
            total = totalPages,
            page = page,
            records = totalRecords,

            rows = (from c in Races
                    select new
                    {
                        //c.Cars.Id.ToString(),  - need iteration
                        cell = new string[] {
                                 //c.Cars.Id.ToString(),  - need iteration
                                 c.Date.ToString(),
                                 c.Type.ToString(),
                                 c.Cars //But how i may loop all Cars colection here?
                                 //c.Cars.Name - need iteration
                                 //c.Cars.Speed - need iteration
                             }
                    }).ToArray()
        };

Но свойство Cars представляет коллекцию. Как я могу повторить это внутри инициализатора коллекции? Или мне лучше создать класс, который бы содержал все нужные мне свойства?

Есть идеи?

Допустим, у автомобиля есть свойства Name Id Speed, а у Race есть свойства Date, Type

Данные будут отображаться так:

Date       |  Type | Id  | Name      | Speed
02/03/2011 |   A   |  1  | MegaName1 |  130
02/03/2011 |   A   |  2  | MegaName2 |  112
02/03/2011 |   A   |  3  | MegaName3 |  132
03/05/2011 |   B   |  4  | MegaName2 |  112
03/05/2011 |   B   |  5  | MegaName4 |  33

1 Ответ

0 голосов
/ 07 июля 2011

Попробуйте следующее:

var jsonData = new
{
    total = totalPages,
    page = page,
    records = totalRecords,

    rows = 
        (from race in races
         from car in race.Cars
         select new
         {
            cell = new string[] 
            {
                race.Date.ToString(),
                race.Type,
                car.Id,
                car.Name,
                car.Speed.ToString()
            }
         }).ToArray()
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...