首页后端开发ASP.NET.Net Core如何读取Json配置文件

.Net Core如何读取Json配置文件

时间2024-01-31 08:29:03发布访客分类ASP.NET浏览494
导读:收集整理的这篇文章主要介绍了.Net Core如何读取Json配置文件,觉得挺不错的,现在分享给大家,也给大家做个参考。前言:在与传统的asp.net MVC项目相比,.net core项目在项目目录的文件结构上和功能上与前者都有很大的区别...
收集整理的这篇文章主要介绍了.Net Core如何读取Json配置文件,觉得挺不错的,现在分享给大家,也给大家做个参考。前言:在与传统的asp.net MVC项目相比,.net core项目在项目目录的文件结构上和功能上与前者都有很大的区别。例如:在.net core中使用Startup.cs取代Global.aSAX文件用于加载应用程序的配置和各种启动项。appsettings.json取代web.config文件用于存储应用程序所需的配置参数等等。。。


OK!步入正题,下面来说一下如何读取Json配置文件中的参数。

第一种:使用IConfiguration接口

我们先在appsettings.json中配置好数据库连接字符串,然后读取它

{
  "Connection": {
        "dbContent": "Data Source=.;
    InITial CataLOG=test;
    User ID=sa;
Password=123456"  }
,  "Logging": {
    "LogLevel": {
      "Default": "Information",      "microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }
  }
,  "AllowedHosts": "*"}
    

在控制器中注入IConfiguration接口

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.extensions.Configuration;
namespace Read.json.Controllers{
    [ApiController]    [Route("[controller]")]    public class ReadController : Controller    {
            PRivate IConfiguration _configuration;
        public ReadController(IConfiguration configuration)        {
                _configuration = configuration;
        }
            [HttpPost]        public async Taskstring>
 ReadJson()        {
                //读参            string conn = _configuration["Connection:dbContent"];
                return "";
        }
    }
}
    

当然也可以读取数组形式的json,一样的先在appsettings.json中写好配置参数,如下:

{
  "Connection": {
        "dbContent": "Data Source=.;
    Initial Catalog=test;
    User ID=sa;
Password=123456"  }
,  //------------------------  "Content": [    {
      "Trade_name": {
        "test1": "小熊饼干",        "test2": "旺仔QQ糖",        "test3": "娃哈哈牛奶"      }
    }
  ],  //------------------------  "Logging": {
    "LogLevel": {
      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }
  }
,  "AllowedHosts": "*"}
    

比如我们想读取test1

string commodity_test1 = _configuration["Content:0:Trade_name:test1"];
    

第二种:使用IOptionsT> 来读取json配置文件

先把NuGet包导进项目:Microsoft.Extensions.Options.ConfigurationExtensions

首先在appsettings.json中添加节点如下

{
  "Connection": {
        "dbContent": "Data Source=.;
    Initial Catalog=test;
    User ID=sa;
Password=123456"  }
,  //------------------------  "Content": [    {
      "Trade_name": {
        "test1": "小熊饼干",        "test2": "旺仔QQ糖",        "test3": "娃哈哈牛奶"      }
    }
  ],  //------------------------  "Logging": {
    "LogLevel": {
      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }
  }
,  "AllowedHosts": "*",  //==============================  "Information": {
    "school": {
      "Introduce": {
        "Name": "实验小学",        "Class": "中班",        "Number": "15人"      }
,      "Region": {
        "Province": "湖北",        "City": "武汉",        "Area": "洪山区"      }
,      "Detailed_address": [        {
          "Address": "佳园路207号"        }
      ]    }
  }
  //==============================}
    

然和再建立一个与这个节点"相同"的类

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
namespace Read.json{
    public class Information    {
        public School school {
     get;
     set;
 }
    }
    public class School    {
        public Introduce Introduce {
     get;
     set;
 }
        public Region Region {
     get;
     set;
 }
            public ListDetailed_address>
 data {
     get;
     set;
 }
    }
    public class Introduce    {
        public string Name {
     get;
     set;
 }
        public string Class {
     get;
     set;
 }
        public string Number {
     get;
     set;
 }
    }
    public class Region    {
        public string Province {
     get;
     set;
 }
        public string City {
     get;
     set;
 }
        public string Area {
     get;
     set;
 }
    }
    public class Detailed_address    {
        public string Address {
     get;
     set;
 }
    }
}
    

在Startup中添加如下代码

            #region 服务注册,在控制器中通过注入的形式使用            services.AddOptions();
                services.ConfigureInformation>
    (Configuration.GetSection("Information"));
                #endregion

控制器中使用:

{
  "Connection": {
        "dbContent": "Data Source=.;
    Initial Catalog=test;
    User ID=sa;
Password=123456"  }
,  //------------------------  "Content": [    {
      "Trade_name": {
        "test1": "小熊饼干",        "test2": "旺仔QQ糖",        "test3": "娃哈哈牛奶"      }
    }
  ],  //------------------------  "Logging": {
    "LogLevel": {
      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }
  }
,  "AllowedHosts": "*",  //==============================  "Information": {
    "school": {
      "Introduce": {
        "Name": "实验小学",        "Class": "中班",        "Number": "15人"      }
,      "Region": {
        "Province": "湖北",        "City": "武汉",        "Area": "洪山区"      }
,      "Detailed_address": [        {
          "Address": "佳园路207号"        }
      ]    }
  }
  //==============================}
    

第三种:这种应该比较常见,任意读取自定义的json文件

首先建立一个json文件

{
  "system_version": {
    "Edition": ".Net Core 3.0",    "Project_Name": "Read.json"  }
}
    

再建一个类,封装一个方法

using Microsoft.Extensions.Configuration;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
namespace Read.json{
    public class Json_File    {
        public IConfigurationRoot Read_Json_File()        {
                //这句代码会读取read_json.json中的内容            return new ConfigurationBuilder().AddJsonFile("read_json.json")                                             .Build();
        }
    }
}
    

在控制器中调用:

[HttpGet]        public async TaskIActionResult>
 ReadSystemVersion()        {
                VAR configuration = _json_File.Read_Json_File();
                string system = "使用的是" + configuration["system_version:Edition"] + "的版本" + "," +                            "项目名称是" + configuration["system_version:Project_Name"];
            return Json(new            {
                data = system            }
    );
        }
    

本文来自 C#.Net教程 栏目,欢迎学习!

以上就是.Net Core如何读取Json配置文件的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

.net

若转载请注明出处: .Net Core如何读取Json配置文件
本文地址: https://pptw.com/jishu/593721.html
Javascript迭代器的用法是什么 c++贪心算法(会场安排、区间选点)示例

游客 回复需填写必要信息