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

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

Asp.NetCore3.1 WebApi 获取配置json文件中的数据的更多相关文章

  1. 接口自动化(三)--读取json文件中的数据

    上篇讲到实际的请求数据放置在json文件内,这一部分记述一下python读取json文件的实现. 代码如下(代码做了简化,根据需要调优:可做一些容错处理): 1 import json 2 3 cla ...

  2. Android中通过代码获取arrays.xml文件中的数据

    android工程res/valuse文件夹下的arrays.xml文件中用于放各种数组数据,比如字符串数组.整型数组等,数组中的数据可能是具体的值,也有可能是对资源数据的引用,下面针对这两种情况通过 ...

  3. NetCore 获取appsetting.json 文件中的配置

    1. using Microsoft.Extensions.Configuration public class HomeController : Controller { public IConfi ...

  4. [数据科学] 从text, json文件中提取数据

    文本文件是基本的文件类型,不管是csv, xls, json, 还是xml等等都可以按照文本文件的形式读取. #-*- coding: utf-8 -*- fpath = "data/tex ...

  5. ASP.NET Core 在 JSON 文件中配置依赖注入

    前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...

  6. 转载:ASP.NET Core 在 JSON 文件中配置依赖注入

    在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等)时候,都是提供了专有的接口以供使用第三方的依赖注入组件,比如我们常用的会使用 Autofac.Untiy.Stri ...

  7. 谷歌通过ajax获取本地JSON文件,为什么会显示跨域?转载的

    在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 谷 ...

  8. 谷歌通过ajax获取本地JSON文件,为什么会提示跨域?

    在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 下 ...

  9. 六种获取配置properties文件的方法

    总结一下六种获取配置properties文件的方法,代码如下: package com.xujingyang.test ; import java.io.BufferedInputStream ; i ...

随机推荐

  1. CSS样式实现表头和列固定

    效果图:第一行和第一列固定       <!DOCTYPE html> <html lang="zh"> <head> <meta cha ...

  2. odoo里的开发案例

    1.模块命名[驼峰命名方法] res开头的是:resources   常见模型:res.users,   res.company,    res.partner,   res.config.setti ...

  3. vant vue 屏幕自适应

    手机端 pc端 屏幕自适应 一.新建 vue.config.js项目目录中没有 vue.config.js 文件,需要手动创建,在根目录中创建 vue.config.js const pxtorem ...

  4. python算法练习(1)抓交通肇事犯

    抓交通肇事犯 1.问题描述 一辆卡车违反交通规则,撞人后逃跑.现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征.甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位 ...

  5. 面试官疯狂问我:char和varchar的区别 怎么办?愣着干嘛?进来白嫖啊!

    MySQL的修仙之路,图文谈谈如何学MySQL.如何进阶!(已发布) 面前突击!33道数据库高频面试题,你值得拥有!(已发布) 大家常说的基数是什么?(已发布) 讲讲什么是慢查!如何监控?如何排查?( ...

  6. API文档生成(c# dll)

    一.Sandcastle 这个是c#类库方法根据注释生成帮助文档的工具,我们经常会遇到把DLL或者API提供给别人调用的情况,通过在方法中添加注释,然后再用Sandcastle 来自动生成文档给调用者 ...

  7. Java代码搭建Dubbo+ZooKeeper 的示例

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  8. 《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)

    1.简介 CSS定位方式和xpath定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比xpath定位速度快,且比CSS稳定的特性.下面详细介绍CSS定位方式的使用方法.xpat ...

  9. 操作系统思考 第十一章 C语言中的信号量

    第十一章 C语言中的信号量 作者:Allen B. Downey 原文:Chapter 11 Semaphores in C 译者:飞龙 协议:CC BY-NC-SA 4.0 信号量是学习同步的一个好 ...

  10. Linux平台上转换文件编码

    Linux系统的iconv指令是一个很好的文件编码转换工具,支持的编码范围广,使用方便,例如将一个utf-8编码的文件(名为tic)转换为gbk编码: iconv -f utf-8 -t gbk ti ...