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; }
}