首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Microsoft.Extensions.Configuration中将JSON作为字符串读取

从Microsoft.Extensions.Configuration中将JSON作为字符串读取
EN

Stack Overflow用户
提问于 2020-07-13 23:30:01
回答 1查看 216关注 0票数 1

Microsoft.Extensions.Configuration有自己的应用程序接口,用于浏览它读入的配置文件中包含的JSON。(这是ASP.NET用于配置的内容)

对于给定的JSON节点-有没有办法以字符串而不是更多的配置对象的形式访问其内容?我的配置文件中有JSON对象,我需要通过JSON反序列化程序运行这些对象(所以我只想从文件中以字符串的形式读取这个节点)。

类似于下面的内容:

代码语言:javascript
复制
var myObjectsSection = configuration.GetSection("MyObjects");
var innerText = myObjectsSection.InnerText; //Is there any way to do this???
var myObjs = JsonConvert.DeserializeObject<MyObject[]>(innerText);

配置文件:

代码语言:javascript
复制
{
   "SomeSetting": "mySetting",
   "MyObjects": [
        {
            ...
        },
        {
            ...
        }
   ]
}
EN

回答 1

Stack Overflow用户

发布于 2020-07-14 01:05:41

Asp.net核心3有一个获取与类型相关的配置值的方法:T IConfigurationSection.Get<T>()

我已经尝试解析您所描述的自定义配置,它正在工作。

appsetting.json:

代码语言:javascript
复制
{
  "CustomSection": [
    {
      "SomeProperty": 1,
      "SomeOtherProperty": "value1"
    }
  ]
}

启动类:

代码语言:javascript
复制
public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            this.Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            IConfigurationSection section = this.Configuration.GetSection("CustomSection");
            var configs = section.Get<List<CustomSectionClass>>();
        }

        public class CustomSectionClass
        {
            public int SomeProperty { get; set; }
            
            public string SomeOtherProperty { get; set; }
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62879170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档