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

ASP.NET Core项目中如何放置JSON文件并编写其读取路径?

1. mockData.json 存放位置

推荐放在项目根目录,和 .csproj 项目文件、Program.cs 同级即可。
存放后需要修改文件的输出属性,确保编译后文件会被复制到运行目录:

  • 方式1:Visual Studio中右键mockData.json → 选择「属性」→ 在「高级」分组中将「复制到输出目录」修改为「如果较新则复制」
  • 方式2:直接编辑.csproj文件,添加如下配置:
<ItemGroup>
  <Content Update="mockData.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
2. Program.cs 路径读取代码

基础读取写法

直接拼接应用运行基目录和文件名即可,不需要写死绝对路径,额外增加了反序列化大小写兼容配置,避免属性名大小写不一致导致反序列化失败:

// 拼接mock文件路径
var mockFilePath = Path.Combine(AppContext.BaseDirectory, "mockData.json");
// 读取并反序列化
var data = JsonSerializer.Deserialize<DataClass>(
    File.ReadAllText(mockFilePath),
    new JsonSerializerOptions { PropertyNameCaseInsensitive = true }
);

适配开发环境的进阶写法

如果你只希望在开发环境使用Mock数据,生产环境走真实REST接口,可以结合环境变量判断:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

DataClass data;
// 仅开发环境使用Mock数据
if (builder.Environment.IsDevelopment())
{
    var mockFilePath = Path.Combine(AppContext.BaseDirectory, "mockData.json");
    data = JsonSerializer.Deserialize<DataClass>(
        File.ReadAllText(mockFilePath),
        new JsonSerializerOptions { PropertyNameCaseInsensitive = true }
    );
}
else
{
    // 生产环境走真实REST接口请求逻辑
    // data = await httpClient.GetFromJsonAsync<DataClass>("真实接口地址");
}

内容的提问来源于stack exchange,提问作者Romulus Urakagi Ts'ai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:08