繁体   English   中英

如何在 ASP.NET Core Web API 中配置 JSON 格式的缩进

[英]How can i configure JSON format indents in ASP.NET Core Web API

我如何配置 ASP.NET Core Web Api 控制器以仅为Development环境返回格式化好的 json?

默认情况下,它返回如下内容:

{"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 启用此选项,您可以让您的控制器返回一个 JsonResult 并在构造 JsonResult 时传递 Formatting.Indented ,如下所示:

return new JsonResult(myResponseObject) { SerializerSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented } };

在 .NetCore 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;
                });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM