asp.net core 怎么读取 appsettings.json 整个数据为一个 JObject 吗

2021-05-10 14:58:02 +08:00
 jry

官方文档只有读取简单的 string array object 结构,无法读取多个层次的数据整体。

883 次点击
所在节点    问与答
4 条回复
drunkdog
2021-05-10 15:06:29 +08:00
又不一定非要用官方的,直接用 newtonJson 读 json 文件就好了呀
Mithril
2021-05-10 15:27:21 +08:00
这东西不是简单的一个 JSON 文件,它是整个 app setting 框架的一部分。虽然你在程序里面使用 Configuration 的时候看起来像是从这个文件里读的,但实际上它可以从环境变量等地方传进来。
而且 Configuration 本身可以读那里面的嵌套对象的,也可以直接反序列化,你定义个类型就行了。
如果你非要弄个 JObject 的话那就 JSON.NET 直接读它就行了。
h82258652
2021-05-10 15:37:25 +08:00
// appsettings.json
{
"Jry": {
"Age": 18,
"Name": "Jry"
}
}

// JryOptions.cs
public class JryOptions
{
public int Age{get;set;}
public string Name{get;set;}
}

// Startup.cs
public void ConfigureServices(ServiceCollection services)
{
// Other codes
service.Config<JryOptions>("Jry");
// Other codes
}

// YourController.cs ctor
public YourController(IOptions<JryOptions> jryOptionsAccessor)
{
JryOptions options = jryOptionsAccessor.Value;
}

大概这样吧
yejinmo
2021-05-10 15:59:37 +08:00
用 dynamic 类型

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/776022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX