无法弄清楚如何将此 JSON 反序列化为 C#

Can't figure out how to deserialize this JSON into C#

我已经尝试了几个反序列化器,但无法弄清楚如何获取条目数组而不是每个条目的 class。下面是 json2csharp 输入和输出。

[
  {
    "subdeviceGuid": "000781000030534e",
    "componentId": "all",
    "entries": {
      "1619701200000": {
        "min": 0.437,
        "max": 2.014,
        "mean": 0.751
      },
      "1619704800000": {
        "min": 0.526,
        "max": 2.089,
        "mean": 0.893
      },
      "1619708400000": {
        "min": -1.456,
        "max": -0.989,
        "mean": -1.328
      }
    }
  }
]

和由 https://json2csharp.com/

创建的 c# classes
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 
    public class _1619701200000
    {
        public double min { get; set; }
        public double max { get; set; }
        public double mean { get; set; }
    }

    public class _1619704800000
    {
        public double min { get; set; }
        public double max { get; set; }
        public double mean { get; set; }
    }

    public class _1619708400000
    {
        public double min { get; set; }
        public double max { get; set; }
        public double mean { get; set; }
    }

    public class Entries
    {
        public _1619701200000 _1619701200000 { get; set; }
        public _1619704800000 _1619704800000 { get; set; }
        public _1619708400000 _1619708400000 { get; set; }
    }

    public class Root
    {
        public string subdeviceGuid { get; set; }
        public string componentId { get; set; }
        public Entries entries { get; set; }
    }

自动生成的 类 通常与 JSON 最好表示为字典的结构有关。试试这些 类 而不是

public class Entry
{
    public double min { get; set; }
    public double max { get; set; }
    public double mean { get; set; }
}

public class Root
{
    public string subdeviceGuid { get; set; }
    public string componentId { get; set; }
    public Dictionary<string, Entry> entries { get; set; }
}

此外,您的 JSON 以“[”开头,表明它不是单个对象,而是一个数组。所以当你反序列化它时,你应该反序列化成一个 Root 的数组而不是单个实例,像这样

Root[] myDeserializedClass = JsonConvert.DeserializeObject<Root[]>(myJsonResponse);