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

如何使用System.Text.Json将对象属性序列化为小写?ASP.NET 5 MVC Core场景下的问题解决

解决System.Text.Json序列化属性大小写问题

不用切换到Json.NET,也不用修改类的属性名称,有两个简洁的方案可以解决这个问题:

方案一:全局配置驼峰命名策略

如果你的整个项目都需要将序列化后的JSON属性设为驼峰式(首字母小写),可以在Program.cs中全局配置Json序列化选项:

var builder = WebApplication.CreateBuilder(args);

// 添加控制器并配置Json序列化选项
builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 设置属性命名策略为驼峰式
        options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    });

var app = builder.Build();

// 其他中间件配置...
app.MapControllers();
app.Run();

这样配置后,所有通过System.Text.Json序列化的属性都会自动转换为首字母小写的格式,你的Amount属性就会变成amount,完全符合目标API的要求。

方案二:单独指定属性的JSON名称

如果只是个别属性需要特殊命名,不想影响全局配置,可以给EstoOst类的Amount属性添加JsonPropertyName特性,直接指定序列化后的名称:

首先要引用System.Text.Json.Serialization命名空间,然后修改类:

using System.Text.Json.Serialization;

public class EstoOst {
    [JsonPropertyName("amount")]
    public decimal Amount { get; set; }
}

这样只有这个属性会被序列化为amount,其他属性不受影响,非常灵活。

两种方案都能完美解决你的问题,根据项目需求选择就好啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:32:44