如何在ASP.NET Core 3.1 Web API中将返回JSON键转为大写
解决方案
方法1:全局配置JSON序列化规则(推荐)
在ASP.NET Core项目的Program.cs(老版本项目为Startup.cs)中,修改JSON序列化配置,禁用自动命名转换,保持属性原名称:
builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = null; });
配置后,所有API返回的JSON属性名都会与模型类中的定义完全一致,包括大小写和下划线格式。
方法2:为单个属性指定JSON名称
如果仅需针对User类配置,可在属性上添加[JsonPropertyName]特性(需引用System.Text.Json.Serialization命名空间):
using System.Text.Json.Serialization; public class User { [JsonPropertyName("NS_ID")] public string NS_ID { get; set; } [JsonPropertyName("TONV_ABC")] public string TONV_ABC { get; set; } [JsonPropertyName("NAME_ABC")] public string NAME_ABC { get; set; } [JsonPropertyName("MAABC")] public string MAABC { get; set; } }
此方式会强制序列化时使用特性指定的名称,匹配你期望的JSON结构。
验证结果
完成配置后重启API,调用/test接口,返回的JSON将符合预期:
{ "NS_ID": "", "TONV_ABC": "", "NAME_ABC": "", "MAABC": "F02" }
内容的提问来源于stack exchange,提问作者kai
相关产品推荐
相关产品推荐

