下面只是做一个简单的测试:

1:定义好appsetting.Json文件的配置信息如下:

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"Appset01": {
"name": "小张",
"age": "18",
"sex": "男"
},
"personnel": {
"name": "小张",
"addr": "湖南怀化",
"books": [
{
"bookid": "b001",
"bname": "西游记"
},
{
"bookid": "b002",
"bname": "水浒传"
}
]
},
"AllowedHosts": "*"
}

2:根据内容获取或者设置实体来:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace WebApiDemo
{
public class Appset01
{
public string name { get; set; }
public string age { get; set; }
public string sex { get; set; }
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace WebApiDemo
{
public class Person
{
public string name { get; set; }
public string addr { get; set; }
public Book[] books { get; set; }
} public class Book
{
public string bookid { get; set; }
public string bname { get; set; }
}
}

3:Startup内容中配置好服务信息:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options; namespace WebApiDemo
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
} public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.Configure<Person>(Configuration.GetSection("personnel"));
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IOptions<Appset01>appOptions)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}

4:在Controller中使用:

using System;
namespace WebApiDemo.Controllers
{
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
[ApiController]
[Route("api/[controller]")]
public class AppSetjsonController : ControllerBase
{
private IConfiguration _Configuration;
public Person _person { get; set; }
public Appset01 _jwtobj { get; set; }
public AppSetjsonController(IConfiguration configuration, IOptions<Person> options)
{
this._Configuration = configuration;
this._person = options.Value;
}
[HttpGet]
[Route("getAppSetting")]
public ApiResult<Appset01> getAppSetting()
{
ApiResult<Appset01> dic = new ApiResult<Appset01>();
try
{
//BindNonPublicProperties 默认为false全部获取,true为不获取私有的字段
dic.data = _Configuration.GetSection("Appset01").Get<Appset01>(c => c.BindNonPublicProperties = true);
Console.WriteLine("addr=" + _person.addr + ",name=" + _person.name + ", book[0].name=" + _person.books[0].bname);
dic.message = "获取成功!";
}
catch (Exception ex)
{
dic.message = "获取失败:" + ex.Message;
}
return dic;
}
}
}

5:查询的效果展示:

6:获取自定义路径下的json配置文件信息

其他方法获取(下标)

  using Microsoft.Extensions.Configuration; 

 public IConfiguration _configuration { get; set; }
public BasisApiResult doJson(int index)
{
BasisApiResult result = new BasisApiResult();
List<Dictionary<string, string>> dict = new List<Dictionary<string, string>>();
_configuration.GetSection("OSS").Bind(dict);
dict[index].TryGetValue("AccessKeyId", out string qq);
Console.WriteLine("qq=" + qq);
result.data = qq;
return result;
}

最新文章

  1. QDialog QMainwindow QWidget QFrame不同时候用法.
  2. 与你相遇好幸运,服务器node环境安装
  3. Android Button上的文字自动变成大写,如何解决呢?
  4. excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法
  5. Javascript备忘复习笔记1
  6. System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
  7. 不能用100%ie6不兼容
  8. LINUX 内核调试基础+编程基础
  9. 〖转〗request.getparameter()和request.getAttribute()的区别
  10. 数据库元数据分析Demo
  11. 第18讲- UI常用组件之EditText
  12. Qt之文件操作 QFile
  13. IIS7安装场景对照表
  14. ASP.NET MVC 项目直接预览PDF文件
  15. hdu1116有向图判断欧拉通路判断
  16. C#调用Java的WebService添加SOAPHeader验证
  17. Sql Server 默认值
  18. ubuntu在终端下复制粘贴的2种方法
  19. linux 系统全盘恢复
  20. python的高阶函数式编程

热门文章

  1. P2490 [SDOI2011]黑白棋
  2. Java中lombok @Builder注解使用详解(十八)
  3. macOS下将可执行文件索引位置增添到PATH中
  4. Dubbo 实现一个Load Balance (用于灰度发布)
  5. CTF_论剑场_Web25
  6. 用 区间判断(if)来猜价格的高低
  7. Java on Visual Studio Code的更新 – 2021年7月
  8. 面试官:你的App卡顿过吗?你是如何监控的?
  9. 干了5年Android开发,突然感觉自己啥也不会,啥也不想干,还要继续吗?
  10. EL表达式和JSTL标签