一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .Net Core讀取Json配置文件的實現示例

.Net Core讀取Json配置文件的實現示例

2020-06-22 15:09江北、 ASP.NET教程

這篇文章主要介紹了.Net Core讀取Json配置文件的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言:在與傳統的asp.net MVC項目相比,.net core項目在項目目錄的文件結構上和功能上與前者都有很大的區別。例如:在.net core中使用Startup.cs取代Global.asax文件用于加載應用程序的配置和各種啟動項。appsettings.json取代web.config文件用于存儲應用程序所需的配置參數等等。。。

OK!步入正題,下面來說一下如何讀取Json配置文件中的參數。

第一種:使用IConfiguration接口

我們先在appsettings.json中配置好數據庫連接字符串,然后讀取它

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{
 "Connection": {
 "dbContent": "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456"
 },
 "Logging": {
 "LogLevel": {
  "Default": "Information",
  "Microsoft": "Warning",
  "Microsoft.Hosting.Lifetime": "Information"
 }
 },
 "AllowedHosts": "*"
}

.Net Core讀取Json配置文件的實現示例

在控制器中注入IConfiguration接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 "";
  }
 
 }
}

.Net Core讀取Json配置文件的實現示例

當然也可以讀取數組形式的json,一樣的先在appsettings.json中寫好配置參數,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
 "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

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

第二種:使用IOptions<T>來讀取json配置文件

先把NuGet包導進項目:Microsoft.Extensions.Options.ConfigurationExtensions

.Net Core讀取Json配置文件的實現示例

首先在appsettings.json中添加節點如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
 "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號"
  }
  ]
 }
 }
 //==============================
}

然和再建立一個與這個節點"相同"的類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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中添加如下代碼

?
1
2
3
4
#region 服務注冊,在控制器中通過注入的形式使用
  services.AddOptions();
  services.Configure<Information>(Configuration.GetSection("Information"));
  #endregion

.Net Core讀取Json配置文件的實現示例

控制器中使用:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
 
namespace Read.json.Controllers
{
 [Route("api/[controller]/[action]")]
 [ApiController]
 public class ReadController : Controller
 {
  private IConfiguration _configuration;
 
  readonly Information _Information;
 
  readonly IOptions<Information> _options;
  public ReadController(IConfiguration configuration,
        Information Information,
        IOptions<Information> options)
  {
   _configuration = configuration;
   _Information = Information;
   _options = options;
  }
 
  [HttpGet]
  public async Task<IActionResult> ReadInformation()
  {
   string Address = _options.Value.school.Region.Province + "-" +
        _options.Value.school.Region.City + "-" +
        _options.Value.school.Region.Area + "-" +
        _options.Value.school.Detailed_address[0].Address + "-" +
        _options.Value.school.Introduce.Name + "-" +
        _options.Value.school.Introduce.Class + "-" +
        _options.Value.school.Introduce.Number;
   return Json(Address);
  }
 
  [HttpPost]
  public async Task<string> ReadJson()
  {
   string conn = _configuration["Connection:dbContent"];
   string commodity = _configuration["Content:0:Trade_name:test1"];
   return "";
  }
 
 }
}

.Net Core讀取Json配置文件的實現示例

.Net Core讀取Json配置文件的實現示例

第三種:這種應該比較常見,任意讀取自定義的json文件

首先建立一個json文件

?
1
2
3
4
5
6
{
 "system_version": {
 "Edition": ".Net Core 3.0",
 "Project_Name": "Read.json"
 }
}

.Net Core讀取Json配置文件的實現示例

再建一個類,封裝一個方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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();
 
  }
 
 }
}

.Net Core讀取Json配置文件的實現示例

在控制器中調用:

?
1
2
3
4
5
6
7
8
9
10
11
[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
   });
  }

.Net Core讀取Json配置文件的實現示例

.Net Core讀取Json配置文件的實現示例

Demo地址:https://github.com/Davenever/Read_Json.git

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/zhangnever/p/11909842.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美久草在线 | 99热精品在线观看 | 精品国产免费一区二区三区 | 日韩免费观看 | 日韩一区在线播放 | 免费人成网址在线观看国内 | 日韩版码免费福利视频 | 4438成人网 | 奇米影视中文字幕 | 日本免费播放 | 美国美女hd18| 免费一级特黄特色大片在线 | 学生小泬无遮挡女HD | 俄罗斯年轻男同gay69 | 日本卡一卡2卡3卡4精品卡无人区 | 欧美3p大片在线观看完整版 | 2012中文字幕中字视频 | 九九国产视频 | 青青热久免费精品视频精品 | 亚洲精品在线免费观看视频 | 91国内精品线免费播放 | 1313午夜精品久久午夜片 | 亚洲精品国产精品国自产观看 | 黑帮少爷爱上我第8集在线观看 | 精品国产一级在线观看 | 热久久最新 | 国产品精人成福利视频 | 91麻豆精品国产片在线观看 | 亚洲图片 自拍偷拍 | 日本护士撒尿 | 亚洲 综合 欧美在线 热 | 四虎影院网站 | www久久精品| 亚洲精品午夜级久久久久 | 91亚洲精品国产自在现线 | 四虎精品在线观看 | 娇妻与公陈峰姚瑶小说在线阅读 | 久久艹影院 | avtt在线| 免费看欧美一级特黄a大片一 | 女人狂吮男人命根gif视频 |