1

シリアル化に JSON.Net を使用しています。データを次の 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; }        
}

ただし、これは Data プロパティを次のようにシリアル化します。

[
        {
          "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

1 に答える 1

4

次のようにする必要があります ( Nameプロパティを追加し、IDictionary を IList にします)。

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

目的の出力 ["10-10-2011", 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; }        
}
于 2012-06-13T18:48:30.287 に答える