ASP.NET Core Get Json Array using IConfiguration

后端 未结 14 2151
失恋的感觉
失恋的感觉 2020-11-30 21:49

In appsettings.json

{
      \"MyArray\": [
          \"str1\",
          \"str2\",
          \"str3\"
      ]
}

In Startup.cs

14条回答
  •  时光说笑
    2020-11-30 22:10

    This worked for me; Create some json file:

    {
        "keyGroups": [
            {
                "Name": "group1",
                "keys": [
                    "user3",
                    "user4"
                ]
            },
            {
                "Name": "feature2And3",
                "keys": [
                    "user3",
                    "user4"
                ]
            },
            {
                "Name": "feature5Group",
                "keys": [
                    "user5"
                ]
            }
        ]
    }
    

    Then, define some class that maps:

    public class KeyGroup
    {
        public string name { get; set; }
        public List keys { get; set; }
    }
    

    nuget packages:

    Microsoft.Extentions.Configuration.Binder 3.1.3
    Microsoft.Extentions.Configuration 3.1.3
    Microsoft.Extentions.Configuration.json 3.1.3
    

    Then, load it:

    using Microsoft.Extensions.Configuration;
    using System.Linq;
    using System.Collections.Generic;
    
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
    
    configurationBuilder.AddJsonFile("keygroup.json", optional: true, reloadOnChange: true);
    
    IConfigurationRoot config = configurationBuilder.Build();
    
    var sectionKeyGroups = 
    config.GetSection("keyGroups");
    List keyGroups = 
    sectionKeyGroups.Get>();
    
    Dictionary dict = 
                keyGroups = keyGroups.ToDictionary(kg => kg.name, kg => kg);
    

提交回复
热议问题