asp.net 在.NET 7 Web API中,项的第一个字符自动变为小写[重复]

ajsxfq5m  于 2022-12-15  发布在  .NET
关注(0)|答案(2)|浏览(183)

此问题在此处已有答案

JSON string will not deserialize into the type specified(1个答案)
8天前关闭。
我有一个使用.NET 7的Web服务。当我从数据库获取数据并将其作为JSON发送时,类项的第一个字母以小写形式发送。
为了解释这个问题,我编写了一个测试Web服务
testClass.cs

public class testClass
    {
        public String Date1 { get; set; }
        public String Date2 { get; set; }

        public testClass(string date1, string date2)
        {
            Date1 = date1;
            Date2 = date2;
        }
    }

还有我的API:

[HttpGet(Name = "test")]
    public testClass Get()
    {
        return (new testClass("d1", "d2"));

    }

结果是:

{
  "date1": "d1",
  "date2": "d2"
}

但我希望结果如下:

{
  "Date1": "d1",
  "Date2": "d2"
}
qpgpyjmq

qpgpyjmq1#

JsonSerializerOptions的默认模式为camel-casing(第一个单词以小写字母开头,大写字母出现在第二个单词的开头以及其后的每个新单词处)。
您可以在此链接中获取更多信息:JsonSerializerOptions.PropertyNamingPolicy
您只需要将以下配置添加到Program.cs

builder.Services.AddControllers()
        .AddJsonOptions(options =>
        {
             options.JsonSerializerOptions.PropertyNamingPolicy = null;
        });
fhg3lkii

fhg3lkii2#

或者只添加JsonProperty:

public class testClass
{
    [JsonProperty("Date1")]
    public String Date1 { get; set; }

    [JsonProperty("Date2")]
    public String Date2 { get; set; }

    public testClass(string date1, string date2)
    {
        Date1 = date1;
        Date2 = date2;
    }
}

相关问题