我正在使用 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; }
}
然而,这会像这样序列化数据属性:
[
{
"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# 数据属性以直接序列化为所需的结构?
最佳答案
它必须像这样(添加 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; }
}
关于c# - 如何在 C# 中建模此 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021325/