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

.NET 7 Web API如何返回无缩进的原始JSON响应?

解决.NET 7 Web API返回带缩进JSON的问题

在.NET 7 Web API应用中,所有返回JSON的端点始终输出带缩进的响应,导致响应字节数增加。当前返回示例:

[    {        "Id": "1",        "Alias": "Superman",        "FirstName": "Clark",        "LastName": "Kent"    },    {        "Id": "2",        "Alias": "Batman",        "FirstName": "Bruce",        "LastName": "Wayne"    }]

需要的紧凑无缩进格式:

[{"Id":"1","Alias":"Superman","FirstName":"Clark","LastName":"Kent"},{"Id":"2","Alias":"Batman","FirstName":"Bruce","LastName":"Wayne"}]

已尝试的方案均未生效:

  • 在Program.cs中配置Newtonsoft.Json的Formatting.None
  • 使用Result.ToString(Formatting.None)转换为字符串
  • 将结果转为JObject/JArray并指定无缩进序列化

所有结果均通过return Content(result.ToString(), "application/json", Encoding.UTF8);返回客户端。


核心原因

问题出在result.ToString()的调用上:无论全局序列化配置如何,JObject/JArray的ToString()方法默认会输出带缩进的格式,手动将其转为字符串后通过Content返回,会绕过框架的全局序列化配置。

解决方案

方案1:使用框架内置ActionResult返回(推荐)

放弃手动转字符串,直接返回对象,让框架按照全局配置自动处理序列化:

// 替代Content方法,直接返回对象
return Ok(result);

对应不同的响应状态码,可使用NotFound()、Created()等ActionResult方法。此时全局配置的序列化规则会生效,输出紧凑的无缩进JSON。

方案2:手动序列化时强制指定无缩进

如果必须使用Content返回字符串,需手动用序列化方法明确指定无缩进格式,而非依赖ToString():

使用Newtonsoft.Json:

var compactJson = JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.None);
return Content(compactJson, "application/json", Encoding.UTF8);

使用.NET默认的System.Text.Json:

var compactJson = System.Text.Json.JsonSerializer.Serialize(result, new System.Text.Json.JsonSerializerOptions { WriteIndented = false });
return Content(compactJson, "application/json", Encoding.UTF8);

方案3:确保全局序列化配置正确

如果使用方案1,需确认Program.cs中的序列化配置正确:

配置Newtonsoft.Json:

builder.Services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        options.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.None;
    });

配置System.Text.Json(.NET 7默认):

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.WriteIndented = false;
    });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:17:43