2014-01-24 85 views
3

服務器端:ASP.NET WEB-API 2.0轉換JSON發佈數據到對象陣列

我發佈了一堆名稱值對從客戶端到服務器端作爲JSON。在服務器端(WEB API控制器),我想將它們轉換爲包含名稱和值的對象的數組/列表。

JSON發佈數據:

[{"name":"sEcho","value":9}, 
{"name":"iColumns","value":6}, 
{"name":"sColumns","value":"Name1,Name2,Name3,Name4,Name5,Name6"},  
{"name":"iDisplayStart","value":0}, 
{"name":"iDisplayLength","value":10}, 
{"name":"mDataProp_0","value":0}, 
{"name":"mDataProp_1","value":1}, 
{"name":"mDataProp_2","value":2}, 
{"name":"mDataProp_3","value":3}] 

我試着用以下方式在服務器端把它映射,但它沒有工作

public IHttpActionResult Post([FromBody]GridDataModel gridData) 

模型

public class GridDataModel 
{ 
    public GridData[] GridData { get; set; } 
} 

public class GridData 
{ 
    public string Name { get; set; } 
    public string Value { get; set; } 
} 

我用以這種方式將JSOn strcuture映射爲單個對象,並將每個名稱值映射到對象屬性。不知道如何將其轉換爲對象數組。我需要它是一個數組,因爲名稱值對的數量是動態的。

任何幫助將不勝感激!

在此先感謝..

回答

4

該方法需要一個實例,而不是一個數組。我相信你可以做兩件事情

1)改變方法簽名

public IHttpActionResult Post([FromBody]IEnumerable<GridData> gridData) 

; 2)將JSON對象

{"gridData": [{"name":"sEcho","value":9}, 
{"name":"iColumns","value":6}, 
{"name":"sColumns","value":"Name1,Name2,Name3,Name4,Name5,Name6"},  
{"name":"iDisplayStart","value":0}, 
{"name":"iDisplayLength","value":10}, 
{"name":"mDataProp_0","value":0}, 
{"name":"mDataProp_1","value":1}, 
{"name":"mDataProp_2","value":2}, 
{"name":"mDataProp_3","value":3}]}