[.NET Core] 简单读取 json 配置文件
2023-09-27 14:28:04 时间
简单读取 json 配置文件
背景
目前发现网上的 .NET Core 读取 json 格式的配置文件有点麻烦,自己想搞个简单点的。
.NET Core 目前的主流形式是采用 json 格式来存储配置文件信息,跟之前的诸如 app.config 和 web.config 等 xml 形式的配置文件有所区别。
json 文件 demo
appsettings.json:
{ "name": "wen", "age": 26, "family": { "mother": { "name": "娘", "age": 55 }, "father": { "name": "爹", "age": 56 } } }
Nuget 类库引用
需要 Nuget 两个类库:
①Microsoft.Extensions.Configuration
②Microsoft.Extensions.Configuration.Json
核心代码
Program.cs:
using System; using System.IO; using Microsoft.Extensions.Configuration; namespace Demo { class Program { static void Main(string[] args) { //添加 json 文件路径 var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); //创建配置根对象 var configurationRoot = builder.Build(); //取配置根下的 name 部分 var nameSection = configurationRoot.GetSection("name"); //取配置根下的 family 部分 var familySection = configurationRoot.GetSection("family"); //取 family 部分下的 mother 部分下的 name 部分 var motherNameSection = familySection.GetSection("mother").GetSection("name"); //取 family 部分下的 father 部分下的 age 部分 var fatherAgeSection = familySection.GetSection("father").GetSection("age"); //Value 为文本值 Console.WriteLine($"name: {nameSection.Value}"); Console.WriteLine($"motherName: {motherNameSection.Value}"); Console.WriteLine($"fatherAge: {fatherAgeSection.Value}"); Console.Read(); } } }
测试结果:
直观的关系对比图,可以看到核心就是 GetSection() 方法,每继续往下一个层次获取就再次调用 GetSection() 方法:
备注
别忘了设置 json 文件的属性哦:
相关的文章:
《[.Net Core] 简单使用 Mvc 内置的 Ioc》
《[.Net Core] 简单使用 Mvc 内置的 Ioc(续)》
相关文章
- 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!
- .NET Core 1.1日期解析无APi、SQL Server数据转换JSON
- 学习ASP.NET Core Razor 编程系列文章目录
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
- 学习ASP.NET Core Razor 编程系列十八——并发解决方案
- 学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库
- Net Core 3.1 处理JSON返回的时间格式
- 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
- Aspose.Words for .NET如何替换或修改超链接
- Word格式处理控件Aspose.Words for .NET教程——使用超链接和HTML
- 【23种设计模式】适配器模式(Adapter Pattern) .Net Core实现
- 【23种设计模式】外观模式(Facade Pattern) .Net Core实现
- 【.NET Core】怎么使用Swagger
- 【C#】ASP .NET CORE
- asp.net mvc特性约束验证,常规验证和ajax请求json返回验证 System.ComponentModel和System.ComponentModel.DataAnnotations
- Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
- 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证
- Asp.Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty(转)
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三)
- .Net Core 3.0原生Json解析器
- .Net Core使用AutoMapper做对象关系映射
- .Net Core连接RabbitMQ集群
- 【历史上的今天】6 月 27 日:摩托罗拉创始人出生;微软发布 ASP.NET Core;靠计算机起家的美国大亨
- 理解 ASP.NET Core: 认证
- sqlserver compact sdf, sqlite 数据库 在net中相对路径设置方法 - 摘自网络