C# 无法反序列化json字符串

C# 无法反序列化json字符串,c#,json,json.net,C#,Json,Json.net,下面是我的JSON结构: { "status": "success", "data": { "MyValues": [ [ "2018-09-06T09:15:00+0530", 1030, 1038.75, 1017.2, 1030.9, 542542 ], [ "2018-09-07T09:15:00+0530",

下面是我的JSON结构:

{
  "status": "success",
  "data": {
    "MyValues": [
      [
        "2018-09-06T09:15:00+0530",
        1030,
        1038.75,
        1017.2,
        1030.9,
        542542
      ],
      [
        "2018-09-07T09:15:00+0530",
        1032.7,
        1035.45,
        1015.5,
        1025.35,
        410461
      ]
    ]
  }
}   
class MyValues
        {
            public DateTime TimeStamp { get; set; }
            public decimal First { get; set; }
            public decimal Second { get; set; }
            public decimal Third { get; set; }
            public decimal Fourth { get; set; }
            public decimal Fifth { get; set; }
        }

  class Data
        {
            public MyValues[] MyValues { get; set; }
        }

  class MyData
        {
            public string  Status { get; set; }

            public Data Data { get; set; }
         }
我使用的是NewtonsoftJSON。为了使其具有强类型,考虑到JSON结构,我创建了以下类:

{
  "status": "success",
  "data": {
    "MyValues": [
      [
        "2018-09-06T09:15:00+0530",
        1030,
        1038.75,
        1017.2,
        1030.9,
        542542
      ],
      [
        "2018-09-07T09:15:00+0530",
        1032.7,
        1035.45,
        1015.5,
        1025.35,
        410461
      ]
    ]
  }
}   
class MyValues
        {
            public DateTime TimeStamp { get; set; }
            public decimal First { get; set; }
            public decimal Second { get; set; }
            public decimal Third { get; set; }
            public decimal Fourth { get; set; }
            public decimal Fifth { get; set; }
        }

  class Data
        {
            public MyValues[] MyValues { get; set; }
        }

  class MyData
        {
            public string  Status { get; set; }

            public Data Data { get; set; }
         }
最后,下面是我编写的代码。它从jd.txt文件中读取上述json对象,并尝试对其进行解析:

using (StreamReader file = File.OpenText(@"jd.txt"))
 {
   Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
    MyData MyData = (MyData)serializer.Deserialize(file, typeof(MyData));
  }
当我运行上述代码时,我看到MyData.Data.MyValues为null。我想不出这个问题。
请指导我解决问题。

1。)创建Mydata对象并加载所有变量

2.)序列化它(如果它是web服务输出,您可以在浏览器中观察json字符串)

3.)根据json的序列化格式,您可以确定它接受哪种json作为回报

4.)在找到json后,它希望您可以构造这种json,以便它可以对其进行反序列化

5.)例如:

Mydata对象json字符串(我们称之为序列化Mydata)如下所示:

{
      "status":"active",
       "data":{
               "MyValues":[
                            {
                              "Name":"k",
                               "ID":"122"
                            },
                            {
                             "Name":"a",
                             "ID":"123"
                            }
                         ]
              }
 }
那么您的类期望这种格式的json字符串只将其转换回Mydata对象(我们称之为反序列化)您的模型应该是:

public class Data
{
    public List<List<object>> MyValues { get; set; }
}

public class MyData
{
    public string status { get; set; }
    public Data data { get; set; }
}

我的最佳建议是:使用类创建一个对象,并将其序列化为JSON。您的数据是一个数组,但您有一个具有一系列属性的类。您可以查看序列化的输出以了解如何构造数据。JSONAdmins中没有名为First、Second等的属性,为什么对这个问题投反对票?您需要使用转换器将JSON中的内部数组值映射到
MyValues
类中。看见事实上,我认为这个问题本质上是那个问题的重复。另一个重复(或接近重复):.Admins,我知道这是一个重复的问题。但是,我无法将JSON结构映射到模型。尤其是我对列出我的价值观感到困惑。谢谢@Yanga的帮助。上帝保佑!