您好,登錄后才能下訂單哦!
.Net Core如何讀取Json配置文件中的參數?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
.NET Core 是.NET Framework的新一代版本,是微軟開發的第一個官方版本,具有跨平臺 (Windows、Mac OSX、Linux) 能力的應用程序開發框架 (Application Framework),未來也將會支持 FreeBSD 與 Alpine 平臺,也是微軟在一開始發展時就開源的軟件平臺,它經常也會拿來和現有的開源 .NET 平臺 Mono 比較。
第一種:使用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": "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 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; } } }
在Startup中添加如下代碼
#region 服務注冊,在控制器中通過注入的形式使用 services.AddOptions(); services.Configure<Information>(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 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 }); }
第三種:使用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 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": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }
比如我們想讀取test1
string commodity_test1 = _configuration["Content:0:Trade_name:test1"];
關于.Net Core如何讀取Json配置文件中的參數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。