ASP.NET Core 6.0如何从appsettings.json获取动态JSON对象
解决方案
方法一:直接将配置节绑定到JObject
ASP.NET Core配置系统支持直接将配置节绑定到Newtonsoft.Json的JObject,前提是已安装Newtonsoft.Json包:
var builder = WebApplication.CreateBuilder(args); // 定位到目标配置节 var requestSection = builder.Configuration.GetSection("ProductConfiguration:Request"); // 直接绑定为JObject JObject requestJObject = requestSection.Get<JObject>(); // 示例:读取JObject中的字段 var id = requestJObject["Id"]?.Value<int>(); var userName = requestJObject["Content"]?["User"]?.Value<string>();
方法二:序列化配置节为JSON字符串后解析为JObject
如果直接绑定存在兼容性问题,可先将配置节转为字典,再序列化解析:
var builder = WebApplication.CreateBuilder(args); var requestSection = builder.Configuration.GetSection("ProductConfiguration:Request"); // 将配置节转换为可序列化的字典结构 var requestDict = requestSection.Get<Dictionary<string, object>>(); // 序列化为JSON字符串 string requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestDict); // 解析为JObject JObject requestJObject = Newtonsoft.Json.Linq.JObject.Parse(requestJson);
关键注意事项
- 配置路径必须正确:你的
Request节嵌套在ProductConfiguration节点下,必须使用路径"ProductConfiguration:Request",这是你之前结果为空的核心原因之一。 - 确认安装依赖:通过NuGet安装
Newtonsoft.Json包,版本需适配你的ASP.NET Core项目版本。
内容的提问来源于stack exchange,提问作者Manmeet Panigrahi
相关产品推荐
相关产品推荐

