.Net Core读取Json配置文件的实现示例_实用技巧

来源:脚本之家  责任编辑:小易  

3334提交">3536?php37 if(isset($arr)&$arr!null){38 for($i=0;i<$count;i+){39 foreach($arr[$i]as$key=>$value){40 echo"key:".$key."value:".$value;www.zgxue.com防采集请勿采集本网。

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

用JArray去读List试试。

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

jquery easyui之tree控件的数据格式化有如下属性: 1.id:节点ID,对加载远程数据很重要 2.text:显示节点文本 3.state:节点状态,'open' 或 'closed',默认:'open'。如果为'closed'的时候,将

第一种:使用IConfiguration接口

请百度Newtonsoft.Json,下载这个DLL,然后用这个把你的Json转成对象后再读取字符串 http://www.bejson.com/ 这个可以直接格式化你的json方便你检查错误,老司机只能送你到这了

我们先在appsettings.json中配置好数据库连接字符串,然后读取它

.NET Core这个项目注定是失败的。(不是说.NET开源会注定失败)就.NET Core这个项目说几点吧。假如2年后.NET Core 集成了Windows下绝大多数好用的类库(估计都不止2年),框架,那又怎么样呢?不

{ "Connection": { "dbContent": "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*"}

listview,自定义一个adapter继承baseadapter import java.util.List;import java.util.Map;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import

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

当然也可以读取数组形式的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<T>来读取json配置文件

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

首先在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<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中添加如下代码

#region 服务注册,在控制器中通过注入的形式使用 services.AddOptions(); services.Configure<Information>(Configuration.GetSection("Information")); #endregion

控制器中使用:

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 ""; } }}

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

首先建立一个json文件

{ "system_version": { "Edition": ".Net Core 3.0", "Project_Name": "Read.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(); } }}

在控制器中调用:

[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 }); }

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

需要使用 微软的 一个 NUGET 包Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.BindrMicrosoft.Extensions.Configuration.Json你的通用库这样写var builder=new ConfigurationBuilder();builder.AddJsonFile("appsettings.json",optional:false,reloadOnChange:true);var config=builder.Build();config.GetSection("读取的key").Get();至于怎么封装看你自己的 能力了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • .net core简单读取json配置文件
  • silverlight融合ajax实现前后台数据交互
  • aspx实现的 jquery ui 的 flexgrid demo
  • mvc默认路由实现分页(pagerextend.dll下载)
  • asp.net使用bulk实现批量插入数据
  • asp.net core分块上传文件示例
  • .net从优酷专辑中采集所有视频及信息(vb.net代码)
  • 微信公众平台开发之认证"成为开发者".net代码解析
  • asp.net餐饮管理系统制作代码分享
  • .net操作excel实例分享
  • asp.net 错误:0x8007000b 异常的解决方法
  • .net core分层中DAL中的数据连接类怎么读取appsettings.json
  • 如何评价.net core抛弃project.json管理方式
  • PHP如何把数据写入JSON文件并在另一PHP文件读取JSON数据?
  • 如何读取Json递归数据
  • 用.net读取json字符串里面的属性值
  • net core appsettings.json 里的字符串怎么使
  • 求.net下读取以下json格式的属性值
  • 如何评价.net core抛弃project.json管理方式
  • android读取json数据如何为每一项都添加单击事件
  • php 读取 json 里面的字段内容
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础应用实用技巧自学过程首页asp.net实用技巧.net core简单读取json配置文件silverlight融合ajax实现前后台数据交互aspx实现的 jquery ui 的 flexgrid demomvc默认路由实现分页(pagerextend.dll下载)asp.net使用bulk实现批量插入数据asp.net core分块上传文件示例.net从优酷专辑中采集所有视频及信息(vb.net代码)微信公众平台开发之认证"成为开发者".net代码解析asp.net餐饮管理系统制作代码分享.net操作excel实例分享asp.net 错误:0x8007000b 异常的解决方法java正则表达式 pattern和matche未将对象引用设置到对象的实例 (asp.net(c#)网页跳转七种方法小结未能加载文件或程序集“xxx”或它asp.net“服务器应用程序不可用”asp.net中的几种弹出框提示基本实asp.net gridview 72般绝技asp.net生成excel并导出下载五种asp.net汉字转拼音和获取汉字首字asp.net对路径"xxxxx"asp.net动态加载自定义控件的方法.net 水晶报表使用代码asp.net下获取浏览器类型的实现代码asp.net中的跳转 200, 301, 302转向实现代asp.net 下载文件时根据mime类型自动判断asp.net signalr支持的平台有哪些request.urlreferrer中文乱码解决方法asp.net(c#)下jmai去说明 使用与下载asp.net stringbuilder的用法 实例代码ext.net中的messagebox的简单应用实现代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved