OK!步入正题,下面来说一下如何读取Json配置文件中的参数。
第一种:使用IConfiguration接口
我们先在appsettings.json中配置好数据库连接字符串,然后读取它
{ Connection: { dbContent: Data Source=.;Initial Catalog=test;User ID=sa;Password=123456 }, Logging: { LogLevel: { Default: @R_635_4045@ion, Microsoft: Warning, Microsoft.Hosting.Lifetime: @R_635_4045@ion } }, 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 Task<string> 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: @R_635_4045@ion, Microsoft: Warning, Microsoft.Hosting.Lifetime: @R_635_4045@ion } }, AllowedHosts: * }
比如我们想读取test1
string commodity_test1 = _configuration[Content:0:Trade_name:test1];
第二种:使用IOptions<T>来读取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: @R_635_4045@ion, Microsoft: Warning, Microsoft.Hosting.Lifetime: @R_635_4045@ion } }, AllowedHosts: *, //============================== @R_635_4045@ion: { 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 @R_635_4045@ion { public School school { get; set; } } public class School { public Introduce Introduce { get; set; } public Region Region { get; set; } public List<Detailed_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; } } }
#region 服务注册,在控制器中通过注入的形式使用 services.AddOptions(); services.Configure<@R_635_4045@ion>(Configuration.GetSection(@R_635_4045@ion)); #endregion
控制器中使用:
{ Connection: { dbContent: Data Source=.;Initial Catalog=test;User ID=sa;Password=123456 }, //------------------------ Content: [ { Trade_name: { test1: 小熊饼干, test2: 旺仔QQ糖, test3: 娃哈哈牛奶 } } ], //------------------------ Logging: { LogLevel: { Default: @R_635_4045@ion, Microsoft: Warning, Microsoft.Hosting.Lifetime: @R_635_4045@ion } }, AllowedHosts: *, //============================== @R_635_4045@ion: { school: { Introduce: { Name: 实验小学, Class: 中班, Number: 15人 }, Region: { Province: 湖北, City: 武汉, Area: 洪山区 }, Detailed_address: [ { Address: 佳园路207号 } ] } } //============================== }
{ 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 Task<IActionResult> 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教程 栏目,欢迎学习!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。