2010-09-04 65 views
1

在C#我有日曆的陣列對象在c#,我如何這種數據結構轉換爲JSON

每個日曆對象具有CalendarEvent對象

每個CalendarEvent的陣列對象有一個日期名稱屬性

我想將其轉換爲Json對象,但是我想在json對象中改變一下數據結構,日曆是一個日期數組和名稱數組(分解CalendarEvent對象)

我想要類似這個:

var myObject = return Json(new 
       { 
        Calendars = new[] 
        { 
         Dates = new [] {myDateArray}; 
         Names = new [] {myNameArray}; 
        } 
       } 

回答

3
IEnumerable<Calendar> calendars = ... 

return Json(
    calendars.Select(calendar => new 
    { 
     Names = calendar.CalendarEvents.Select(e => e.Name), 
     Dates = calendar.CalendarEvents.Select(e => e.Date) 
    }) 
); 
0

對於.net 3.5,你會尋找DataContractJsonSerializer。您可能需要customise it以符合您的要求。

+0

哦不,爲什麼要重新發明輪子?你是否建議在'Json'方法已經這樣做時手動使用序列化程序? – 2010-09-04 12:02:47

+0

哦,我沒有意識到,.Net有一個'Json'對象/方法。 Msdn ref? – cofiem 2010-09-05 06:33:24