我有一个问题,我的config.json中的数组对象返回为空。在以下代码中,gridFields将返回为空。
{"grids": [{
"name": "Grid1"
"gridFields": [
{
"Name": "Something",
"Label": "Something"
},
{
"Name": "SomethingElse",
"Label": "SomethingElse"
}]
},
{"name": "Grid2"
"gridFields": [
{
"Name": "Something",
"Label": "Something"
}]
}]
}
我有匹配的POCO,并确保名称匹配如下。
public class Grid
{
public string name { get; set; }
public gridFields gridFields {get; set;}
}
public class gridFields
{
public List<gridField> GridFields { get; set; } = new List<gridField>();
public int Count => GridFields.Count();
public IEnumerator GetEnumerator()
{
return GridFields.GetEnumerator();
}
}
public class gridField
{
public string Name { get; set; }
public string Label { get; set; }
}
在我的创业公司中,我有以下内容
public void ConfigureServices(IServiceCollection services)
{ services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
var config = new List<Grid>();
Configuration.Bind("grids", config);
services.AddSingleton(config);
}
config.gridFields最终没有保存任何值。我有名称的值,但不是gridFields。即使我制作gridFields List,它也会返回null。
我的问题是,如果有一些关注此当前代码,我可以从数组中获取数据,或者我是否需要做一些完全不同的事情。为什么.net核心不能绑定它在父级下面遇到的每个对象?
示例json在每个网格的名称后错过了一个,
。
{
"name": "Grid2",
"gridFields":
[{
"Name": "Something",
"Label": "Something"
}]
}
你有一个直接在Json网格下的gridField
列表。
但是在Code中你使用了另一个对象GridFields
。
您应该删除gridfiels类并使用Grid类中的gridField列表:
public class Grid
{
public string name { get; set; }
public List<gridField> gridFields {get; set;}
}