C# class 用于特定 JSON / Geckoboard / Trendline 小部件

C# class for specific JSON / Geckoboard / Trendline widget

对于 Geckoboard,我想生成这样的 JSON:

{
"item": [
    {
      "value": "274057"
    },
    [
      "38594",
      "39957",
      "35316",
      "35913",
      "36668",
      "45660",
      "41949"
    ]
  ]
}

我正在为数组前丢失的 属性 苦苦挣扎。

C# Class 看起来如何序列化到那个?

这些对于动态语言工作得很好,比如 javaScript,但在 C# 中做同样的事情并不那么容易。我在这里看到的最好的 - 整个 JSON 将映射到以下 class 结构:

public class RootItem
{
    public IEnumerable<object> Item {get;set;}
}

public class ValueItem 
{
    public string Value {get;set;}
}

基本上接下来您将需要一个自定义序列化程序规则或参数绑定器(取决于您使用它的位置),这将采用此 JSON 并使用 RootItem.Item 集合手动填充 RootItem.Item 集合=12=] 或 IEnumerable<string>.

将您的 json 粘贴到 json2csharp,并生成一个合适的 class 定义以在其中序列化 json:

public class RootObject
{
    public List<object> item { get; set; }
}

Json item 属性 定义为包含混合数据类型(单个对象和数组)的数组,并且在 .NET 中保存这两种类型的一种可能数据类型是 object