避免在asp.net json响应中自动小写首字母

Posted

技术标签:

【中文标题】避免在asp.net json响应中自动小写首字母【英文标题】:Avoid auto lowercase first letter in asp.net json response 【发布时间】:2021-09-11 00:42:48 【问题描述】:

在我的 asp.net razor 项目中,json 响应总是小写第一个字母,这很烦人。因为我会处理从后端到前端的不同名称。

我的班级:

    [JsonProperty("Test")]
    public string Test  get; set;  => json responce: Test (good)

    public string Test2  get; set;  => json responce: test2 (bad)

    [JsonPropertyName("Test3")]
    public string Test3  get; set;   => json responce: test3 (bad)
    
    

我可以避免在每个值字段上添加 JsonProperty 标记吗?

【问题讨论】:

你为什么关心前端的小写字母?这实际上是正常的事情,这就是为什么 .NET 默认会这样做。 为了一致的命名。尤其是我的数据有 CT_Image 之类的字段,这些字段将来自 cT_image,看起来不正确。 【参考方案1】:

您可以创建自定义 formatter 或通过提供 NamingStrategy 来使用 DefaultContractResolver。例如检查以下代码:

User user = new User

    UserName = "jamesn",
    Enabled = true
;

DefaultContractResolver contractResolver = new DefaultContractResolver

    NamingStrategy = new CamelCaseNamingStrategy()
;

string json = JsonConvert.SerializeObject(user1, new JsonSerializerSettings

    ContractResolver = contractResolver,
    Formatting = Formatting.Indented
);

Console.WriteLine(json);

【讨论】:

以上是关于避免在asp.net json响应中自动小写首字母的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中返回 json 数据首字母大小写问题

Asp.Net Core中使用Newtonsoft.Json进行序列化处理解决返回值首字母小写

Newtonsoft.Jsonjson序列化小驼峰格式(属性名首字母小写)

JAVA返回前端时候bean转json时首字母第二个字母大写会自动变成小写的问题

Servlet映射路径首字母变成小写

FastJSONFastJson转换json字符串key的首字母小写变大写的解决办法