gpt4 book ai didi

.Net Core读取Json配置文件的实现示例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章.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 。

最后此篇关于.Net Core读取Json配置文件的实现示例的文章就讲到这里了,如果你想了解更多关于.Net Core读取Json配置文件的实现示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com