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

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

  1. {
  2. "Logging": {
  3. "LogLevel": {
  4. "Default": "Information",
  5. "Microsoft": "Warning",
  6. "Microsoft.Hosting.Lifetime": "Information"
  7. }
  8. },
  9. "Appset01": {
  10. "name": "小张",
  11. "age": "18",
  12. "sex": "男"
  13. },
  14. "personnel": {
  15. "name": "小张",
  16. "addr": "湖南怀化",
  17. "books": [
  18. {
  19. "bookid": "b001",
  20. "bname": "西游记"
  21. },
  22. {
  23. "bookid": "b002",
  24. "bname": "水浒传"
  25. }
  26. ]
  27. },
  28. "AllowedHosts": "*"
  29. }

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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5.  
  6. namespace WebApiDemo
  7. {
  8. public class Appset01
  9. {
  10. public string name { get; set; }
  11. public string age { get; set; }
  12. public string sex { get; set; }
  13. }
  14. }

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5.  
  6. namespace WebApiDemo
  7. {
  8. public class Person
  9. {
  10. public string name { get; set; }
  11. public string addr { get; set; }
  12. public Book[] books { get; set; }
  13. }
  14.  
  15. public class Book
  16. {
  17. public string bookid { get; set; }
  18. public string bname { get; set; }
  19. }
  20. }

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

  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using Microsoft.Extensions.Hosting;
  6. using Microsoft.Extensions.Options;
  7.  
  8. namespace WebApiDemo
  9. {
  10. public class Startup
  11. {
  12. public Startup(IConfiguration configuration)
  13. {
  14. Configuration = configuration;
  15. }
  16.  
  17. public IConfiguration Configuration { get; }
  18.  
  19. // This method gets called by the runtime. Use this method to add services to the container.
  20. public void ConfigureServices(IServiceCollection services)
  21. {
  22. services.AddControllers();
  23. services.Configure<Person>(Configuration.GetSection("personnel"));
  24. }
  25.  
  26. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  27. public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IOptions<Appset01>appOptions)
  28. {
  29. if (env.IsDevelopment())
  30. {
  31. app.UseDeveloperExceptionPage();
  32. }
  33.  
  34. app.UseRouting();
  35.  
  36. app.UseAuthorization();
  37.  
  38. app.UseEndpoints(endpoints =>
  39. {
  40. endpoints.MapControllers();
  41. });
  42. }
  43. }
  44. }

4:在Controller中使用:

  1. using System;
  2. namespace WebApiDemo.Controllers
  3. {
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.Extensions.Configuration;
  6. using Microsoft.Extensions.Options;
  7. [ApiController]
  8. [Route("api/[controller]")]
  9. public class AppSetjsonController : ControllerBase
  10. {
  11. private IConfiguration _Configuration;
  12. public Person _person { get; set; }
  13. public Appset01 _jwtobj { get; set; }
  14. public AppSetjsonController(IConfiguration configuration, IOptions<Person> options)
  15. {
  16. this._Configuration = configuration;
  17. this._person = options.Value;
  18. }
  19. [HttpGet]
  20. [Route("getAppSetting")]
  21. public ApiResult<Appset01> getAppSetting()
  22. {
  23. ApiResult<Appset01> dic = new ApiResult<Appset01>();
  24. try
  25. {
  26. //BindNonPublicProperties 默认为false全部获取,true为不获取私有的字段
  27. dic.data = _Configuration.GetSection("Appset01").Get<Appset01>(c => c.BindNonPublicProperties = true);
  28. Console.WriteLine("addr=" + _person.addr + ",name=" + _person.name + ", book[0].name=" + _person.books[0].bname);
  29. dic.message = "获取成功!";
  30. }
  31. catch (Exception ex)
  32. {
  33. dic.message = "获取失败:" + ex.Message;
  34. }
  35. return dic;
  36. }
  37. }
  38. }

5:查询的效果展示:

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

其他方法获取(下标)

  1. using Microsoft.Extensions.Configuration;
  2.  
  3. public IConfiguration _configuration { get; set; }
  4. public BasisApiResult doJson(int index)
  5. {
  6. BasisApiResult result = new BasisApiResult();
  7. List<Dictionary<string, string>> dict = new List<Dictionary<string, string>>();
  8. _configuration.GetSection("OSS").Bind(dict);
  9. dict[index].TryGetValue("AccessKeyId", out string qq);
  10. Console.WriteLine("qq=" + qq);
  11. result.data = qq;
  12. return result;
  13. }

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. LC-322. 零钱兑换

    322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组合能组成总金 ...

  2. Python自动化测试面试题-Selenium篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  3. wireshark常见分析

    转载于https://www.cnblogs.com/sn1per/p/12553064.html https://www.cnblogs.com/csnd/p/12332421.html 直接看上面 ...

  4. 手撸一个SpringBoot-Starter

    1. 简介 通过了解SpringBoot的原理后,我们可以手撸一个spring-boot-starter来加深理解. 1.1 什么是starter spring官网解释 starters是一组方便的依 ...

  5. 使用html2canvas.js将HTML生成图片

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Windows系统安装Mariadb数据库(zip包方式安装)--九五小庞

    1.去Mariadb官网下载zip安装包 下载地址:https://downloads.mariadb.org/mariadb/10.3.31/ 2.解压压缩包到指定的安装位置 3.在安装包的data ...

  7. Vue学习笔记(一)简单使用和插值操作

    目录 一.Vue是什么 二.Vue简单体验 1. 声明式渲染 2. vue列表展示 3. 处理用户输入(事件监听) 三.插值操作 1. Mustache语法 2. 常用v-指令 v-once v-ht ...

  8. ABC133简要题解

    A T or T TOT 模拟即可 B Good Distance \(O(n^2)\) 模拟. C Remainder Minimization 2019 把 \(r\) 变成 \(l+2019\) ...

  9. 利用支付宝Cookie监听交易订单实现个人支付宝收款实时回调通知

    在网上.社区里搜了一下好像没找到什么文章详细分享这种方式的,这些天我花了些时间研究整理了一下,发现这种方式能实时获取到支付宝里的二维码收款记录,从而很好地实现个人支付宝免签约收款实时回调,于是在这里分 ...

  10. 在STM32F401上移植uC/OS的一个小问题 [原创]

    STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...