【问题标题】:ASP.NET core read array from applicationsettings.jsonASP.NET 核心从 applicationsettings.json 读取数组
【发布时间】:2021-06-02 15:52:22
【问题描述】:

我的配置文件如下:

  "app": {
    "Token": "sfasgeagesagasdgdas",
    "Address": "https://localhost",
    "User": "me",
    "Password": "pwd123",
    "Users": [
      {
        "Id": "123456",
        "Username": "me"
      },
      {
        "Id": "234567",
        "Username": "notme"
      }
    ]
  }

我可以通过以下方式获取令牌和地址:

Configuration["app:Token"];

但是这种方法不适用于 json 数组值。 json数组应该如何使用?

【问题讨论】:

标签: asp.net-core


【解决方案1】:

从您的描述中,您想要获取用户信息。

如果要获取特殊用户,可以使用以下代码(更改项目索引):

var user1_id = Configuration["app:Users:1:Id"];
var user1_username = Configuration["app:Users:1:Username"];

如果要获取整个数组的所有值,可以使用以下代码:

IConfigurationSection myArraySection = Configuration.GetSection("app").GetSection("Users");
var itemArray = myArraySection.AsEnumerable();

此外,如果您还可以基于 Json 数组创建 Users 模型:

public class Users
{
    public string Id { get; set; }
    public string Username { get; set; }
}

然后,使用以下代码获取用户数据:

List<Users> myTestUsers = Configuration.GetSection("app").GetSection("Users").Get<List<Users>>();

结果如下:

【讨论】:

    【解决方案2】:

    您应该在 NET5 中这样阅读:

    var user0_id = config["app:Users:0:Id"];
    var user1_id = config["app:Users:1:Id"];
    var user0_username = config["app:Users:0:Username"];
    

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多