如何配置ASP.NET Core Web API控制器,使其仅为Development环境返回格式化的JSON?默认情况下,它返回如下内容:
Development
{"id":1,"code":"4315"}
字符串我希望在响应中有缩进的可读性:
{ "id": 1, "code": "4315" }
型
3hvapo4f1#
.NET Core 2.2及更低版本:
在Startup.cs文件中,调用AddJsonOptions扩展名:
Startup.cs
AddJsonOptions
services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.Formatting = Formatting.Indented; });
字符串请注意,此解决方案需要Newtonsoft.Json。
Newtonsoft.Json
.NET Core 3.0及更高版本:
services.AddMvc() .AddJsonOptions(options => { options.JsonSerializerOptions.WriteIndented = true; });
型至于根据环境切换选项,this answer应该会有所帮助。
fykwrbwg2#
如果你想为单个控制器而不是所有JSON打开这个选项,你可以让你的控制器返回一个JsonResult,并在构造JsonResult时传递一个.Indented,如下所示:
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented } };
字符串
j8ag8udp3#
在.NetCore 3+中,您可以通过以下方式实现这一点:
xsuvu9jc4#
在我的项目中,我使用Microsoft.AspNetCore.Mvc和下面的代码为所有控制器。这是.NET Core 3。
Microsoft.AspNetCore.Mvc
public void ConfigureServices(IServiceCollection services) { services.AddControllers() .AddNewtonsoftJson(options => { options.SerializerSettings.Formatting = Formatting.Indented; }); }
h7appiyu5#
如果您希望此选项仅用于特定操作,请使用System.Text.Json
return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerOptions() { WriteIndented = true } };
6tqwzwtp6#
在.NET 7中,如果你想返回缩进的JSON输出,并且你正在使用控制器,你可以在启动代码中使用它:
builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.WriteIndented = true; });
字符串这是使用.NET中内置的JSON功能,而不是使用任何外部框架,如Newtonsoft。
6条答案
按热度按时间3hvapo4f1#
.NET Core 2.2及更低版本:
在
Startup.cs
文件中,调用AddJsonOptions
扩展名:字符串
请注意,此解决方案需要
Newtonsoft.Json
。.NET Core 3.0及更高版本:
在
Startup.cs
文件中,调用AddJsonOptions
扩展名:型
至于根据环境切换选项,this answer应该会有所帮助。
fykwrbwg2#
如果你想为单个控制器而不是所有JSON打开这个选项,你可以让你的控制器返回一个JsonResult,并在构造JsonResult时传递一个.Indented,如下所示:
字符串
j8ag8udp3#
在.NetCore 3+中,您可以通过以下方式实现这一点:
字符串
xsuvu9jc4#
在我的项目中,我使用
Microsoft.AspNetCore.Mvc
和下面的代码为所有控制器。这是.NET Core 3。字符串
h7appiyu5#
如果您希望此选项仅用于特定操作,请使用System.Text.Json
字符串
6tqwzwtp6#
在.NET 7中,如果你想返回缩进的JSON输出,并且你正在使用控制器,你可以在启动代码中使用它:
字符串
这是使用.NET中内置的JSON功能,而不是使用任何外部框架,如Newtonsoft。