2013-06-11 32 views
1

下面的代碼:如何將下面的列表轉換爲字典?

var data = _context.People.ToList(); //_context is my DataContext. 

產生的結果爲:

[{ "name": "john", "age": "30" }, { "name": "jane", "age": "31" }] 

,但是,我希望它是一本字典,所以像:

{ "xldata" : [{ "name": "john", "age": "30" }, { "name": "jane", "age": "31" }] } 

我得到它的工作通過:

Dictionary<string,List<People>> vals = new Dictionary<string, List<People>>(); 
     vals.Add("xldata", people); 

但是,我的字典裏的值是System.Object[]代替people

這樣做的目的是爲了導出數據,所以當我到達這條線:

var people = jss.Deserialize<List<People>>(args["xldata"]); 

args["xldata"] is `System.Object[]` and it says `Invalid JSON primitive`. 

這裏是腳本應該導出數據擅長:

$.post(urlContent + exportHandlerPath, Json, function(data) { 
     var viewData = {}; 
     viewData.xldata = JSON.stringify(data); 
     html = ich.excelExportTemplate(viewData); 
     $excelExportContainer.html(html); 
     var input = $excelExportContainer.find('input#excelExportHiddenField'); 
     input.val(viewData.xldata); 

     var $excelForm = $('#excelExportForm'); 

     $excelForm.attr('action', '/People/ExportToExcel/'); 
     $excelForm.submit(); 
    } 
+3

你想要「名」是關鍵,「年齡」是價值嗎? – MichelleJS

+0

你想要使用哪些屬性的鍵和值? – evanmcdonnal

+2

我很困惑 - 你的「鑰匙」是一羣「人」? –

回答

0

顯然你ARGS [ 「xldata」]不包含JSON字符串,例如[{ 「Name」: 「約翰」, 「年齡」: 「30」},{ 「名」: 「jane」,「age」:「31」}],但是.net對象.ToString()返回的內容。

使用JavaScriptSerializer.Deserialize只能反序列化json表示。