避免在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序列化小驼峰格式(属性名首字母小写)