如何仅为 ASP.NET Core Web Api 中的特定操作更改响应 json 属性名称?

我正在使用 ASP.NET Core 3.1 Web API。我有以下响应模型:

public class UserModel
{
   public string UserId { get; set; }
   public string UserName { get; set; }
}

它产生以下 json 响应:

{
    "userId": 1,
    "userName": "SomeName"
}

我感兴趣的是有什么方法可以在不创建新类的情况下更改输出 JSON 的属性名称?另外,我想将此规则仅应用于特定操作,并为其他操作保留默认属性名称。在我们的项目中,我们坚持使用 System.Text.Json Serializer。所需的 JSON 输出:

{
    "teacherId": 1,
    "teacherName": "SomeName"
}
stack overflow How to change response json property names only for specific action in ASP.NET Core Web Api?
原文答案

答案:

作者头像

如果您不想切换到 Newtonsoft.JSON 并使用默认序列化程序,请使用 [JsonPropertyName("name")] 。您可以从 Microsoft @ https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-customize-properties?pivots=dotnet-core-3-1 找到大量信息