2012-06-13 17 views
1

我使用JSON.Net序列化。 我需要我的數據看起來像這樣JSON對象:如何在C#中建模這個JSON數據?

{ 
     name: "0.8C", 
     data: [["10-10-2011", 10], ["10-11-2011", 20], ["10-12-2011", 25], ["10-13-2011", 40], ["10-14-2011", 50], ["10-15-2011", 60], ["10-16-2011", 70], ["10-17-2011", 80], ["10-18-2011", 100]] 
} 

所以我模仿我的對象是這樣的:

public class ScatterLineChartSeriesModel 
{     
    public IList<IDictionary<DateTime, double>> Data { get; set; }   
} 

但是這個串行數據屬性,像這樣:

[ 
     { 
      "01/31/1966 00:00:00": 1008.795324292118, 
      "02/28/1966 00:00:00": 992.18823885452684, 
      "03/31/1966 00:00:00": 967.39109875352267, 
      "04/30/1966 00:00:00": 985.79507840133135 
     } 
] 

我怎樣才能構建我的C#數據屬性直接序列化到所需的結構?

回答

4

它必須是這樣的(添加名稱屬性,使IDictionary的一個IList):

public class ScatterLineChartSeriesModel 
{     
    public string Name { get; set; } 
    public IList<IList<object>> Data { get; set; }   
} 

所需輸出[ 「2011年10月10日」,10]是多相數組,所以源必須是對象列表。

其他選項(似乎是一個更好的選擇對我來說,如果實際上是爲固定的模式作爲例子說明)將是使日期到屬性:

data: [ { date: "10-10-2011", number: 10 }, { ... } ] 

像這樣:

public class SomeInnerClass 
{ 
    public string Date { get; set; } 
    public string Number { get; set; } 
} 

public class ScatterLineChartSeriesModel 
{     
    public string Name { get; set; } 
    public IList<IList<SomeInnerClass>> Data { get; set; }   
} 
+1

+1異構陣列的好處! –

+0

關鍵在於內部列表將是,例如'新列表 {日期,編號}' –

相關問題