.NET Core从config.json获取数组中的数组

问题描述 投票:0回答:1

我有一个问题,我的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核心不能绑定它在父级下面遇到的每个对象?

.net-core app-config
1个回答
0
投票

示例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;}
}
© www.soinside.com 2019 - 2024. All rights reserved.