.Net Core如何读取Json配置文件

前言:在与传统的asp.net mvc项目相比,.net core项目在项目目录的文件结构上和功能上与前者都有很大的区别。例如:在.net core中使用startup.cs取代global.asax文件用于加载应用程序的配置和各种启动项。appsettings.json取代web.config文件用于存储应用程序所需的配置参数等等。。。

.Net Core如何读取Json配置文件

OK!步入正题,下面来说一下如何读取Json配置文件中的参数。

第一种:使用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": "*"}

.Net Core如何读取Json配置文件

 在控制器中注入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 ReadJson()        {            //读参            string conn = _configuration["Connection:dbContent"];            return "";        }    }}

.Net Core如何读取Json配置文件

 当然也可以读取数组形式的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"];

 第二种:使用IOptions来读取json配置文件

先把NuGet包导进项目:Microsoft.Extensions.Options.ConfigurationExtensions

.Net Core如何读取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": "*",  //==============================  "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 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(Configuration.GetSection("Information"));            #endregion

.Net Core如何读取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号"        }      ]    }  }  //==============================}

.Net Core如何读取Json配置文件

 

.Net Core如何读取Json配置文件

第三种:这种应该比较常见,任意读取自定义的json文件

首先建立一个json文件

{  "system_version": {    "Edition": ".Net Core 3.0",    "Project_Name": "Read.json"  }}

.Net Core如何读取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();        }    }}

.Net Core如何读取Json配置文件

在控制器中调用:

[HttpGet]        public async Task 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配置文件

 本文来自 C#.Net教程 栏目,欢迎学习!  

以上就是.Net Core如何读取Json配置文件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1433358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 09:06:47
下一篇 2025年12月9日 21:36:23

相关推荐

  • .NET中async异步、thread多线程

    一、任务task System.Threading.Tasks在.NET4引入,前面线程的API太多了,控制不方便,而ThreadPool控制能力又太弱,比如做线程的延续、阻塞、取消、超时等功能不太方便,所以Task就抽象了线程功能,在后台使用ThreadPool 1、启动任务 可以使用TaskFa…

    好文分享 2025年12月17日
    000
  • .net core和.net区别

    .net core和.net区别 简单说,都是.net standard所定义的接口的实现,都是 .net standard的儿子。   C#是一种编程语言,使用它可以创建具有第7版新功能的程序。 .Net Standard是一个规则(很好,是标准),通过该规则,应该将库构建为可以相互理解。 可移植…

    2025年12月17日
    000
  • .net是什么语言 视频

    .net语言的全称应该是asp.net,是微软新推出的一种编程框架理论或者说是一种编程标准,它可以通过微软出品的visual studio 开发工具进行项目开发,应用于网站类的开发一般使用c#语言进行编写,应用程序类一般使用vb进行编写。 该语言编写的程序可以在安装有 net frame 的所有操作…

    2025年12月17日
    000
  • .net中的错误处理机制是什么?

    .NET提供了四种错误处理机制,分别为:1、“Page_Error”事件;2、ErrorPage属性;3、“Application_Error”事件;4、“”配置项。 .NET提供了四种错误处理机制,分别为:Page_Error事件、ErrorPage属性、Application_Error 事件、…

    2025年12月17日
    000
  • .net的错误处理机制是什么

    .NET的错误处理机制是:1、【Page_Error】事件;2、ErrorPage属性;3、【Application_Error】事件;4、【】配置项。以上四种处理机制主要用于异常处理和页面级错误处理。 .NET提供了四种错误处理机制: 1.Page_Error事件 Page_Error 事件提供一…

    2025年12月17日
    000
  • .net和c#有什么区别

    有的人可能会认为.net和c#之间没有太大的区别,但是实际上它们是两个并不相同,本篇文章我们就来给大家介绍一下关于.net和c#之间的区别。 什么是.net? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可…

    2025年12月17日
    000
  • C#与.net有什么关系

    .net与c#的关系有c#是一种针对与.net编写的编程语言,与c++的语法十分相似。而.net是一个开发框架,而且.net中存在的特性c#不一定存在。 经常会有人将.net与C#混淆,认为它们是一样的,其实他们还是有一定的区别的。.net是一个抽象的平台概念而C#是一种编程语言。接下来在文章中将具…

    2025年12月17日
    000
  • 浅谈.Net中的浅拷贝和深拷贝

    对象复制是将数据对象的属性复制到同一数据类型的另一个对象的过程。在.net浅拷贝和深拷贝是用于在对象之间复制数据的。下面本篇文章就来带大家简单认识一下.net中浅拷贝和深拷贝,希望对大家有所帮助。 什么是浅拷贝? 浅拷贝会创建一个新对象,然后将当前对象的非静态字段复制到新对象。如果该字段是值类型,则…

    2025年12月17日
    000
  • .NET是什么

    “.NET”是微软的一种技术平台,是基于Windows上开发的;“.NET”是使用Framework类库进行编写,Framework组件核心负责执行;“.NET”最大的特点就是可以相互操作,并且允许“.NET”的程序去访问其他外部程序。 本文操作环境:Windows7系统、Dell G3电脑、.NE…

    2025年12月17日
    000
  • C#与.net框架之间的关系是什么?C#程序的开发工具

    c#与.net框架之间的关系是什么?本篇文章就给大家介绍c#与.net框架之间的关系,让大家了解适合c#开发的工具有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 C#与.net框架之间的关系是什么? C#是.Net框架的一部分,可以用于编写.Net应用程序。我们来了解一下.…

    好文分享 2025年12月17日
    000
  • C#执行原理深入解析(图文)

    本篇文章给大家带来的内容是关于c#执行原理深入解析(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为什么 Unity3D 可以运行 C#,C# 和 Mono 是什么关系,Mono 和 .Net Framework 又是什么关系?我们深入的来聊一聊这个话题! 从编译原理说起 …

    2025年12月17日
    000
  • 浅谈.NET Core开发日志中Edge.js是什么?如何用?

    本篇文章给大家带来的内容是浅谈.net core开发日志中edge.js是什么?如何用?有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 最近在项目中遇到这样的需求:要将旧有系统的一部分业务逻辑集成到新的自动化流程工具中。这套正在开发的自动化工具使用的是C#语言,而旧有系统的业务逻辑则…

    2025年12月17日
    000
  • .NET Core中如何使用Entity Framework操作PostgreSQL?

    本篇文章给大家带来的内容是介绍.net core中使用entity framework操作postgresql的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 Entity Framework在.NET Core中被命名为Entity Framework Core。虽然一般会用…

    2025年12月17日 好文分享
    000
  • 如何验证数据帮助类?验证数据帮助类的方法(代码示例)

    本篇文章给大家带来的内容是介绍js如何实现简单的时分秒倒计时效果(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 using System;using System.Text.RegularExpressions;namespace ZMM.Core{ /// /// …

    好文分享 2025年12月17日
    000
  • .Net Core配置与自动更新的实现方法_实用技巧

    下面小编就为大家分享一篇.net core配置与自动更新的实现方法,具有很好的参考价值,希望对大家学习.net有所帮助。对.net感兴趣的小伙伴们一起跟随小编过来看看吧 .Net Core 将之前Web.Config中的配置迁移到了appsettings.json文件中,并使用Configurati…

    好文分享 2025年12月17日
    000
  • .net WINFORM的GDI双缓冲的实现方法_实用技巧

    下面小编就为大家分享一篇.net winform的gdi双缓冲的实现方法,具有很好的参考价值,希望对大家学习.net有所帮助。对.net感兴趣的小伙伴们一起跟随小编过来看看吧 有时候在窗体中执行不断的GDI+操作的时候会出现闪速的状况,除了修改窗体的参数,更应该解决刷新本身的问题,双缓冲可能就是这样…

    好文分享 2025年12月17日
    000
  • C#对Word文档的创建、插入表格、设置样式等操作实例

    这篇文章主要介绍了关于c#对word文档的创建、插入表格、设置样式等操作实例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 using Word; 下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作: (例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作wo…

    好文分享 2025年12月17日
    000
  • C#中.NET框架的简介

    初学.net肯定会有一系列的疑问,比如(以下为自己的疑问):   1) 何为. NET框架,它都包含哪些东西?   2)  程序集是什么,它是如何在CLR(通用语言运行时)中运行的?   3)  C#与VB.NET同属于.NET平台,它们之间的根本联系和区别,为何他们之间的程序集能互相调用(如果创建…

    好文分享 2025年12月17日
    000
  • 在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法_实用技巧

    本篇文章主要介绍了reactnative中使用redux架构总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。对.net感兴趣的朋友一起跟随小编过来看看吧 本文介绍了ReactNative中使用Redux架构总结,分享给大家。具体如下: 使用Redux也有一段时间了。总结一下。 为什么要使用…

    好文分享 2025年12月17日
    000
  • C#中强制转换与尝试转换的实现方法

    这篇文章主要为大家详细介绍了c#强制转换和尝试转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了C#强制转换和尝试转换的方法,供大家参考,具体内容如下 将String[]类型的Object类型,转换为String[]类型: public string ObjectTo…

    好文分享 2025年12月17日
    000

发表回复

登录后才能评论
关注微信