避免在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响应中自动小写首字母的主要内容,如果未能解决你的问题,请参考以下文章