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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女的让男人桶爽免费看 | 欧美在线一二三区 | 91精品国产高清久久久久久 | 人成午夜免费大片在线观看 | 国产成人yy精品1024在线 | a亚洲天堂| nxgx欧美| 我的美女奴隶 | 亚洲波霸 | 欧美xxxxx九色视频免费观看 | 国产精品嫩草影院一二三区 | 丰满的闺蜜2中文字幕 | 本土自拍 | 色图图片| 高h文3p双龙 | 久久综合中文字幕佐佐木希 | 男人狂躁女人下面的视频免费 | 青草青草久热精品视频在线网站 | 好男人社区www影院在线观看 | 久久中文字幕亚洲 | 爽新片xxxxxxx| 特级毛片免费视频观看 | 黑人操日本妞 | 我被男人下药添得好爽 | 亚洲精品中文字幕久久久久久 | 丝袜兔女郎被啪在线观看91 | 国产裸露片段精华合集链接 | 91资源站| 操破苍穹在线 | 美女翘臀跪床被打屁股作文 | yjsp妖精视频在线观看免费 | a天堂视频 | 色播影院性播影院私人影院 | 办公室强行丝袜秘书啪啪 | 手机av| 女女性恋爱视频入口 | 亚洲成综合人影院在院播放 | 美女1819xxxx| 色老板视频在线观看 | 亚洲欧美在线免费观看 | 日本特级a禁片在线播放 |