json - 从位于内存中的 JSON 加载启动配置

标签 json .net-core build configuration

我正在研究如何在 .NET Core 中加载启动配置。我注意到有不同的方法可以做到这一点,我已经看到了 XML、JSON、init 文件,以及来自位于内存中的 Dictionary(我稍后会回到这个)。我正在使用类似下面的代码:

new ConfigurationBuilder().AddJsonFile("file.json").Build();

所有这些都可以,但是,是否有任何方法可以从 JSON 字符串加载该配置?我的意思是,我不想将 json 存储在临时文件中,因为它是一个实时构建的文件,而且没有任何意义。

关于位于内存中的字典。手动构建它很容易,但是,对于复杂且过于分层的 JSON 结构呢?据我所知,字典是

dictionary < string, string >

其键是由“:”连接的树的父级,同时管理重复节点、枚举它们等。从头开始构建这个算法很痛苦。

最佳答案

使用 NuGet 包 Microsoft.Extensions.Configuration.Json >= 3.0.0

var json = "{ \"option1\": 1, \"option2\": \"abc\", }";
var configuration = new ConfigurationBuilder().AddJsonStream(new MemoryStream(Encoding.ASCII.GetBytes(json))).Build();

关于json - 从位于内存中的 JSON 加载启动配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807836/

相关文章:

php - 遍历缺少索引的 Json 文件

javascript - 如何将多维 JSON 对象转换为 javascript 数组

.net - .NET Core 2.0 中的 Websockets - 以 block 的形式接收消息

c# - Moq.Dapper QueryAsync 不适用于模拟事务对象

svn - 在构建中集成外部资源

java - Maven - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 7.0:使用 java 10 进行编译

javascript - 无法计算 JSON 中特定属性的实例数

c# - 如何在 IdentityServer 4 中为不同角色返回不同范围?

javascript - JSLint - 在 Visual Studio 2015 中构建时忽略文件夹

php - 使用 jQuery 将 JSON 发布到 Laravel 4