c# - 如何在 C# 中建模此 JSON 数据?

标签 c# json serialization json.net

我正在使用 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/

相关文章:

c# - 运行 linq 查询时 DbContext 超时

ios - Swift 4 中的 JSON 解析帮助 - 数据结构问题?

javascript - 尝试从给定的 url 解析 JSON

javascript - 寻找解析帮助

python - UnpicklingError : A load persistent id instruction was encountered, 但没有指定persistent_load 函数

c# - 使用 Dispose 注入(inject) transient 作用域

c# - 从代码访问表单的资源(resx 文件)

c# - 使用 PushStreamContent 将数据拆分成 block

java - 在 UDP 上发送和接收序列化对象

java - 数据交换格式和 Java 序列化