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

.NET Core控制台应用读取appsettings.json网络路径遇JSON解析错误

解决.NET Core中appsettings.json网络路径JSON解析失败的问题

首先得明确:JSON里的反斜杠必须用双反斜杠\\来转义,你原来的配置写法里转义符和引号的组合出了问题,导致JSON解析器无法正确识别这个字符串。

错误原因分析

你写的配置:

"ExportLocation": "\"\\\Eservername.domain.com\\filefolder\\subfolder\\\" "

这里有几个明显问题:

  • 开头和结尾的\"是多余的,这会让JSON把它们当成字符串的一部分,同时中间的\\\其实是一个转义后的反斜杠加上一个未转义的反斜杠,JSON解析器遇到未转义的反斜杠直接就会报错。
  • UNC路径的正确格式是\\servername\folder\subfolder,在JSON里需要把每个反斜杠都转义成\\才能被正确识别。

正确的配置写法

你可以选择以下两种简单靠谱的配置方式:

方式1:严格按JSON转义规则写UNC路径

把每个反斜杠都换成双反斜杠,不需要额外加引号:

"ExportLocation": "\\\\Eservername.domain.com\\filefolder\\subfolder"

解释:这里的\\\\会被JSON解析成实际的\\(对应UNC路径的开头),后面的\\会被解析成单个\,最终得到的路径就是\\Eservername.domain.com\filefolder\subfolder,完全符合网络共享路径的要求。

方式2:使用正斜杠代替反斜杠(更简洁)

.NET框架本身支持正斜杠作为路径分隔符,所以你可以直接写:

"ExportLocation": "//Eservername.domain.com/filefolder/subfolder"

这种写法不需要处理复杂的反斜杠转义,JSON解析器能直接识别,而且.NET在处理路径时会自动转换成系统对应的分隔符,完全不影响后续访问网络服务器的文件。

在代码中读取配置的示例

确保你已经正确配置了IConfiguration,然后可以这样读取:

using Microsoft.Extensions.Configuration;
using System;

class Program
{
    static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .Build();

        string exportLocation = config["ExportLocation"];
        Console.WriteLine($"读取到的路径:{exportLocation}");
        // 接下来就可以用这个路径访问网络服务器的待处理文件了
    }
}

验证小技巧

如果你不确定JSON字符串是否正确,可以直接在VS Code里打开appsettings.json,它会实时提示语法错误;或者写完后运行代码打印出读取到的路径,确认是否和预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:12:33