【发布时间】:2021-09-02 20:28:21
【问题描述】:
我有一个关于 Json 的问题。让我先给你我的 Json 示例:
{
"watch": [
{
"path": "C:/Temp",
"conditions": "*.log",
"actions": ""
},
{
"path": "C:/Temps",
"conditions": ".log",
"actions": ""
}
]
}
我想看目录。所以我的 Json 会有一个数据数组。
我想交叉检查我是否正确地做一些事情。我是一名 C# 开发人员,但我对 .NET Core 还是很陌生。通常我通过使用 Newtonsoft 包中的序列化来加载我的 Json 文件。使用 .NET 代码,我感觉我们的做法有点不同。我正在这样做:
static void Main(string[] args)
{
var configurationBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json", optional: true, reloadOnChange: true)
.Build();
}
然后我可以使用这个访问我的数据
configurationBuilder["watch:0:path"]
"C:/Temp"
很好,但这不是我想要的。我想循环我的数组。使用 ConfigurationBuilder,我感觉无法将数据用作循环。配置文件中的所有数据似乎都是一个键
这是逻辑,因为我的配置文件可以是任何东西。构建器不能保证我的数组总是有相同的对象。因此,构建器将我的数组中的每个元素都视为一个唯一的标记。这个我能理解。
那么,如何将我的配置或这个 Json 文件加载到结构化对象中?有没有办法以更好的方式将其加载为配置文件?因为实际上我的数组中有 2 个对象,我想循环它们。对于每个对象,我都会做一些事情。
【问题讨论】:
-
你能试试这个
IConfiguration configuration; var section = configuration.GetSection("watch"); if(section != null) { var children = section.GetChildren();
标签: c# json .net-core configuration