我制作了一个API,在详细说明了实体框架之后,我发送了一个在Json中序列化的对象。
我的对象:
public class Package
{
public int Items { get; set; }
public string Code { get; set; }
public string Description { get; set; }
public double? Weight { get; set; }
public string Size { get; set; }
public string PackageType { get; set; }
}
问题在接收到它(Xamarin应用程序)后就开始出现了,Json的第一个字母是小写,但是我想在完全相同的类中反序列化它,但是不能,因为该类在大写情况下具有属性(C#标准)。现在,我正在使用一个可怕的'helper'类,该类具有小写的属性来进行翻译。
任何想法如何处理,并以大写字母首字母直接发送给Json?
编辑
我使用ASP.NET Web API Core和Newtonsoft.Json
在Xamarin应用中,我使用System.Text.Json
默认情况下,ASP.NET Core以驼峰形式对所有JSON属性名称进行编码,以匹配JSON约定(请参见announcement of the change on GitHub)。
如果要保留C#约定,则需要更改默认的JSON序列化器。
在您的Startup.cs
中,像这样配置MVC部件(ASP.Net Core 3.0):
services
.AddMvc()
.AddNewtonsoftJson(options =>
{
// don't serialize with CamelCase (see https://github.com/aspnet/Announcements/issues/194)
jsonSettings.ContractResolver = new JsonContractResolver();
});
对于ASP.NET Core 2.0:
services
.AddMvc()
.AddJsonOptions(options =>
{
// don't serialize with CamelCase (see https://github.com/aspnet/Announcements/issues/194)
jsonSettings.ContractResolver = new DefaultContractResolver();
});