.Net Core如何读取Json配置文件
导读:收集整理的这篇文章主要介绍了.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 Core如何读取Json配置文件
本文地址: https://pptw.com/jishu/593721.html