2014-04-11 26 views
0

我JSON的格式如下:C#需要反序列化JSON動態綁定到ListView的

{ 
    "fields": 
    [ 
     "field_a", 
     "field_b" 
    ], 
    "records": 
    [ 
     [ 
      1203, 
      169 
     ], 
     [ 
      983, 
      147 
     ] 
    ] 
} 

,我需要反序列化,並綁定到ASP.NET的ListView,其中「領域」成爲列標題,'記錄'成爲數據行。

在這種情況下,我想有一個表:

field_a | field_b 
----------------- 
1203 | 169 
983  | 147 

我目前使用Newtonsoft JSON庫反序列化,但無法弄清楚如何領域的動態數映射到C#對象最終綁定到Web控件。

回答

0

我想你幾乎在你的問題中使用關鍵字。動態寶貝。這裏是一個讓你開始的例子。

var text = "{\"fields\": [\"field_a\",\"field_b\"],\"records\": [[1203,169],[983,147]]}"; 
dynamic result = JsonConvert.DeserializeObject(text); 
var fields = result.fields; 
var records = result.records; 
var columnList = new List<Column>(); 

for (var x = 0; x < fields.Count; x++) 
{ 
    var field = fields[x]; 
    var col = new Column() {Title = field.Value}; 
    columnList.Add(col); 
    var record = records[x]; 
    for (var y = 0; y < record.Count; y++) 
    { 
     var value = record[y]; 
     var cell = new Cell() {Value = (int)value.Value}; 
     col.Cells.Add(cell); 
    } 
} 

和類以匹配:

public class Column 
{ 
    public Column() 
    { 
     Cells = new List<Cell>(); 
    } 
    public string Title { get; set; } 
    public List<Cell> Cells { get; set; } 
} 

public class Cell 
{ 
    public int Value { get; set; } 
} 

這僅僅是一個例子。我不確定你希望你的課程看起來如何,但這將是一個開始。希望這有助於。