从Appsettings C#读取JSON数组

时间:2018-07-24 13:16:12

标签: c# .net json appsettings

我的appsettings.json中有数组

"steps": [
{
  "name": "IMPORT",
  "enabled": true
},
{
  "name": "IMPORT_XML",
  "enabled": true
},
{
  "name": "COMPARE",
  "enabled": true
},
{
  "test_name": "COMPARE_TABLE",
  "enabled": true
}]

在我的课堂上,我尝试使用IConfigurationRoot _configurationRoot

进行检索

我尝试过:

var procSteps = _configurationRoot.GetSection("steps");
foreach (IConfigurationSection section in procSteps.GetChildren())
{
    var key = section.GetValue<string>("test");
    var value = section.GetValue<string>("enabled");
}

和:

var procSteps = _configurationRoot.GetSection("ExecutionSteps")
            .GetChildren()
            .Select(x => x.Value)
            .ToArray();

但是他们都没有找回我的价值。有人知道情况如何,访问这种数组值的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

创建一个对象模型以保存值

public class ProcessStep {
    public string name { get; set; }
    public bool enabled { get; set; }
}

然后使用Get<T>

从该部分获取数组
var procSteps = _configurationRoot
    .GetSection("steps")
    .Get<ProcessStep[]>();
  

ASP.NET Core 1.1及更高版本可以使用Get<T>,它适用于整个部分。 Get<T>比使用Bind

更方便

引用Configuration in ASP.NET Core: Bind to an object graph