首页 > 解决方案 > API Json 对具有大写属性首字母的 C# 对象的响应

问题描述

我制作了一个 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# 标准)。现在我正在使用一个可怕的“助手”类,它具有小写的属性来翻译它。

知道如何处理这个问题并直接用大写首字母发送 Json 吗?

编辑

我使用ASP.NET Web API CoreNewtonsoft.Json

在 Xamarin 应用程序中,我使用System.Text.Json

标签: c#jsonentity-frameworkasp.net-coreasp.net-apicontroller

解决方案


您必须更改 json 序列化选项的默认属性命名策略。

默认情况下,它设置为驼峰式大小写,但如果您将其设置为null,则属性名称将保持不变(或保持您在课堂上写的那样)。

只需将其添加到您的Startup.cs

services.AddControllers()
.AddJsonOptions(options =>
{
   options.JsonSerializerOptions.PropertyNamingPolicy = null;
});

推荐阅读