Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法正确反序列化.Net时出错_C#_.net_Deserialization - Fatal编程技术网

C# 无法正确反序列化.Net时出错

C# 无法正确反序列化.Net时出错,c#,.net,deserialization,C#,.net,Deserialization,我有以下课程: public class MyData { public Data2[] Data2 { get; set; } } public class Data2 { public string X { get; set; } public string Y { get; set; } } 在我的appsettings.json中,我有以下内容: { "Data": [ { "X&quo

我有以下课程:

public class MyData
{
    public Data2[] Data2 { get; set; }
}

public class Data2
{
    public string X { get; set; }
    public string Y { get; set; }
}
在我的appsettings.json中,我有以下内容:

{
    "Data": [
       {
           "X": "1",
           "Y": "2",
       },
       {
           "X": "4",
           "Y": "5",
       }
   ]
}
我正在尝试在startup.cs中反序列化此文件:

var data = Configuration.GetSection("Data").Get<MyData>();
var data=Configuration.GetSection(“数据”).Get();
我遇到的问题是
数据。Data2
为空。

请尝试:

发件人:

致:


你的模型错了。您需要使用如下类:

public class Datum    {
    public string X { get; set; } 
    public string Y { get; set; } 
}

public class Root    {
    public List<Datum> Data { get; set; } 
}
公共类数据{
公共字符串X{get;set;}
公共字符串Y{get;set;}
}
公共类根{
公共列表数据{get;set;}
}

您可以使用它将任何JSON转换为有效的C#类。

这样您的配置中的
数据就不是
MyData
直接
Data2
array。。。您的配置中根本没有
Data2
字符串,因此您希望在JSON中的任何位置都看不到
Data2
,这肯定会让我怀疑是否所有设置都在这里。@Damien\u不相信这一点-
Data2
在JSON中没有功能。那么类必须是什么样子才能反序列化呢?
public Data2[] Data { get; set; }
public class Datum    {
    public string X { get; set; } 
    public string Y { get; set; } 
}

public class Root    {
    public List<Datum> Data { get; set; } 
}