我如何在 ASP.NET Core Web API 中配置 JSON 格式缩进
How can i configure JSON format indents in ASP.NET Core Web API
我如何将 ASP.NET Core Web Api 控制器配置为 return 漂亮格式 json 仅适用于 Development
环境?
默认情况下,它 return 类似于:
{"id":1,"code":"4315"}
为了便于阅读,我想在响应中缩进:
{
"id": 1,
"code": "4315"
}
.NET Core 2.2 及更低版本:
在您的 Startup.cs
文件中,调用 AddJsonOptions
扩展名:
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.Formatting = Formatting.Indented;
});
请注意,此解决方案需要 Newtonsoft.Json
。
.NET Core 3.0 及更高版本:
在您的 Startup.cs
文件中,调用 AddJsonOptions
扩展名:
services.AddMvc()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
});
至于根据环境切换选项, 应该有所帮助。
如果你想为单个控制器而不是为所有 JSON 打开此选项,你可以让你的控制器 return 一个 JsonResult 并在构建时传递 Formatting.Indented JsonResult 是这样的:
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented } };
在 .Net Core 3+ 中,您可以按如下方式实现:
services.AddMvc()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
});
在我的项目中,我对所有控制器使用了 Microsoft.AspNetCore.Mvc
和下面的代码。这适用于 .NET Core 3。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.Formatting = Formatting.Indented;
});
}
如果您只希望此选项用于特定操作,请使用 System.Text.Json
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerOptions() { WriteIndented = true } };
我如何将 ASP.NET Core Web Api 控制器配置为 return 漂亮格式 json 仅适用于 Development
环境?
默认情况下,它 return 类似于:
{"id":1,"code":"4315"}
为了便于阅读,我想在响应中缩进:
{
"id": 1,
"code": "4315"
}
.NET Core 2.2 及更低版本:
在您的 Startup.cs
文件中,调用 AddJsonOptions
扩展名:
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.Formatting = Formatting.Indented;
});
请注意,此解决方案需要 Newtonsoft.Json
。
.NET Core 3.0 及更高版本:
在您的 Startup.cs
文件中,调用 AddJsonOptions
扩展名:
services.AddMvc()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
});
至于根据环境切换选项,
如果你想为单个控制器而不是为所有 JSON 打开此选项,你可以让你的控制器 return 一个 JsonResult 并在构建时传递 Formatting.Indented JsonResult 是这样的:
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented } };
在 .Net Core 3+ 中,您可以按如下方式实现:
services.AddMvc()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
});
在我的项目中,我对所有控制器使用了 Microsoft.AspNetCore.Mvc
和下面的代码。这适用于 .NET Core 3。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.Formatting = Formatting.Indented;
});
}
如果您只希望此选项用于特定操作,请使用 System.Text.Json
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerOptions() { WriteIndented = true } };