V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jry
V2EX  ›  问与答

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

  •  
  •   jry · 2021-05-10 14:58:02 +08:00 · 433 次点击
    这是一个创建于 380 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2021-05-10 15:59:37 +08:00
    drunkdog
        1
    drunkdog  
       2021-05-10 15:06:29 +08:00
    又不一定非要用官方的,直接用 newtonJson 读 json 文件就好了呀
    Mithril
        2
    Mithril  
       2021-05-10 15:27:21 +08:00
    这东西不是简单的一个 JSON 文件,它是整个 app setting 框架的一部分。虽然你在程序里面使用 Configuration 的时候看起来像是从这个文件里读的,但实际上它可以从环境变量等地方传进来。
    而且 Configuration 本身可以读那里面的嵌套对象的,也可以直接反序列化,你定义个类型就行了。
    如果你非要弄个 JObject 的话那就 JSON.NET 直接读它就行了。
    h82258652
        3
    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
        4
    yejinmo  
       2021-05-10 15:59:37 +08:00
    用 dynamic 类型
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1415 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 23:54 · PVG 07:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.