You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 5中如何读取appsettings.json指定部分的原始字符串?

实现方案

你可以根据自己的使用场景选择以下两种常用实现方式:


方案1:将目标配置段作为转义字符串存储

  • 先把需要存放的Google服务账号JSON内容整体转义为字符串,直接作为appsettings.json的独立键值,示例配置如下:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "GoogleServiceAccount": "{\"type\":\"service_account\",\"project_id\":\"你的项目ID\",\"private_key_id\":\"xxx\",...}"
}
  • 读取时直接通过默认的IConfiguration接口取值即可,代码示例:
// 直接获取未经过额外解析的原始字符串
var googleServiceAccount = builder.Configuration.GetValue<string>("GoogleServiceAccount");
  • 该方案实现成本极低,无需额外逻辑处理;缺点是配置存放时需要先转义JSON,配置本身的可读性稍差。

方案2:直接读取配置文件提取目标段原始文本

  • 如果你希望保持appsettings.json里的JSON嵌套结构、不想做转义,可以直接读取配置文件的原始文本,再提取对应节点的完整JSON内容,示例代码如下:
// 适配多环境配置读取逻辑
var env = builder.Environment;
var configPath = Path.Combine(env.ContentRootPath, $"appsettings.{env.EnvironmentName}.json");
if (!File.Exists(configPath))
{
    configPath = Path.Combine(env.ContentRootPath, "appsettings.json");
}

// 读取配置文件原始文本
var configRawText = File.ReadAllText(configPath);
// 解析为JsonNode后提取目标节点的原始JSON字符串
var rootNode = System.Text.Json.Nodes.JsonNode.Parse(configRawText);
var googleServiceAccount = rootNode["GoogleServiceAccount"].ToJsonString();
  • 该方案可以保留配置的原生嵌套结构,可读性更好;缺点是需要自己处理多环境配置的文件读取逻辑。

如果有大量同类需要读取原始文本的配置场景,也可以自定义配置提供器实现通用的读取逻辑,常规场景以上两种方案已经足够覆盖需求。

内容的提问来源于stack exchange,提问作者Marius Kazlauskas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:54:06